{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Example Q1 - Qubit rotation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This notebook demonstrates PennyLane's \"Hello world!\" example for qubit-based architectures, using the default qubit backend. \n",
    "\n",
    "The task is to optimize two rotation gates in order to flip a single qubit from state $|0\\rangle$ to state $|1\\rangle $. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we need to import PennyLane, as well as PennyLane's wrapped version of NumPy. This allows us to automatically compute gradients for functions that manipulate NumPy arrays, including quantum functions. We will compare two optimizers, basic gradient descent and adagrad."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pennylane as qml\n",
    "from pennylane import numpy as np\n",
    "from pennylane.optimize import GradientDescentOptimizer, AdagradOptimizer"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we instantiate the default simulator as a \"device\" to run the quantum node. We only need a single quantum wire."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dev = qml.device('default.qubit', wires=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Quantum node\n",
    "\n",
    "We define a quantum node which encapsulates the function `circuit`. \n",
    "\n",
    "The decorator `qml.qnode(dev)` automatically converts from the python function `circuit` to a quantum node object, which is evaluated on the specified device. Quantum nodes can be equivalently created with `circuit = qml.qnode.QNode(circuit, dev)`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "@qml.qnode(dev)\n",
    "def circuit(var):\n",
    "\n",
    "    qml.RX(var[0], wires=0)\n",
    "    qml.RY(var[1], wires=0)\n",
    "    \n",
    "    return qml.expval.PauliZ(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This function uses PennyLane to run the following quantum circuit:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"figures/rotation_circuit.png\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Starting with a qubit in the ground state, \n",
    "\n",
    "$$ |0\\rangle = \\begin{pmatrix}1 \\\\ 0 \\end{pmatrix}, $$\n",
    "\n",
    "we first rotate the qubit around the x-axis by \n",
    "$$R_x(v_1) = e^{-iv_1 X /2} = \n",
    "\\begin{pmatrix} \\cos \\frac{v_1}{2} &  -i \\sin \\frac{v_1}{2} \\\\  \n",
    "                -i \\sin \\frac{v_1}{2} &  \\cos \\frac{v_1}{2} \n",
    "\\end{pmatrix}, $$ \n",
    "               \n",
    "and then around the y-axis by \n",
    "$$ R_y(v_2) = e^{-i v_2 Y/2} = \n",
    "\\begin{pmatrix} \\cos \\frac{v_2}{2} &  - \\sin \\frac{v_2}{2} \\\\  \n",
    "                \\sin \\frac{v_2}{2} &  \\cos \\frac{v_2}{2} \n",
    "\\end{pmatrix}. $$ \n",
    "\n",
    "After these operations the qubit is in the final state\n",
    "\n",
    "$$ | \\psi \\rangle = R_y(v_1) R_x(v_2) | 0 \\rangle. $$\n",
    "\n",
    "Finally, we measure the expectation $ \\langle \\psi | Z | \\psi \\rangle $ of the Pauli-Z operator \n",
    "$$Z = \n",
    "\\begin{pmatrix} 1 &  0 \\\\  \n",
    "                0 & -1 \n",
    "\\end{pmatrix}. $$ \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Depending on the circuit parameters $v_1$ and $v_2$, the output expectation lies between $1$ (if $| \\psi \\rangle = | 0  \\rangle $) and $-1$ (if $| \\psi \\rangle = | 1  \\rangle $)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Objective"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we define a cost. Here, the function we wish to optimize is directly the expectation of the PauliZ measurement, so that the cost is trivially the output of the circuit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def objective(var):\n",
    "    return circuit(var)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With this objective, the optimization procedure is tasked with finding the weights that rotate the qubit from the ground state \n",
    "\n",
    " <img src=\"figures/bloch_before.png\" width=\"250\"> \n",
    " \n",
    " to the excited state\n",
    " \n",
    " <img src=\"figures/bloch_after.png\" width=\"250\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The rotation gates give the optimization landscape a trigonometric shape with four global minima and five global maxima within the domain $[-2\\pi, 2\\pi] \\times [-2\\pi, 2\\pi]$. \n",
    " \n",
    "*Note: To run the following cell you need the matplotlib library.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWQAAADuCAYAAAAOR30qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXeUJHd97v1UV1fn7sk5p81BG2aDeWVkSwgjY4EJQvfC\ntbCNhTBcW4B8EK8vfu91uJYcCAZhbOCAMAYhmwsiSLJAIvgq7kpapZV2Zyft5Ng5V3j/qPlVV1VX\ndVV1mJ0Z1eecObvTXV1V0+Hpp76/b6AEQYCNjY2NzZXHcaVPwMbGxsZGxBZkGxsbmy2CLcg2NjY2\nWwRbkG1sbGy2CLYg29jY2GwRbEG2sbGx2SLYgmxjY2OzRbAF2cbGxmaLYAuyjY2NzRbBaXF7u6zP\nxsbGxjqUmY1sh2xjY2OzRbAF2cbGxmaLYAuyjY2NzRbBFmQbGxubLYItyDY2NjZbBFuQbWxsbLYI\ntiDb2NjYbBFsQbaxsbHZItiCbGNjY7NFsAXZxsbGZotgC7KNjY3NFsEWZBsbG5stgtXmQjY2JREE\nARzHAQBomgZFmeqpYmNjA1uQbaoEz/PgOA4syyKbzUq3UxQFmqalH4fDAYfDAYqibLG2sVFhC7JN\nRfA8D5ZlJVdMUZQkuIIgdmslQi2HbEfTNJxOpy3UNjYAKPKhMYndD9kGgiCA53mkUik4neJ3OhFS\nQRCQy+UMRVUQBOnnhRdewOHDh6X92EJtswMx9ea1HbKNaYgQk7DECy+8gNHR0bKEUi6wHMeBpmnF\nMTiOQy6XUzxGHvog4Q9bqG12ErYg2xgiF2Ke5yUXKwhC1cVQT2DlQq0+rlyg1XFqG5vthC3INrqQ\njAmWZSURJD80TcNiuKsiyhFqnufB8zwCgYAt1DbbAluQbYrQEmKHQ5myTlEUeJ6/QmeoPA89oY5G\no1hZWcHQ0JBiG+KktTI/bGyuJLYg20gIgiBlTOgJMaGUeMnve6L/lOK+X5l6qjona4A824MsPAKQ\nXD3Lssjn84rH2EJtc6WxBdlGEmKSmlZKiK3iaWWQWS4IHxHozRJmNURc1SJbSqhJiEae9WEXvdjU\nAluQX8eQ2OvY2Bh6enrAMExVRea5E1cDEEUZgCTMnlYGz524Gkef+U9p21osEFrBSKjVIZxkMgmW\nZdHU1GQXvdhUDVuQX4eoiznC4TC6urqqJiKCIOD5k79adDsRZoJalLciekKdyWSQTCZRX1+vW/Ti\ndDptobaxhC3IrxNIEUY+n5cW465ExoSn3g0AyETE8urnTlwN6oufqYlDrvXfpBXaIcfkeV5RQi7f\n3i56sdHDFuQdjjqHGCjOTKhWxkQmk8HU1BQiN9+ieT8RY/J/IsqOP/wo8NQvKj6+FrUSOr0vED1H\nTR5jF73YlMIW5B2KVjGH3gfc4XBUJMjpdBqTk5OIRCIYGBgA+kIAgMh0TNpGLsby24gonzv1xi0f\nvpBTjqM3m0vNsiwWFhbQ29urmfVhZ37sXGxB3mGUKubQo1xB5jgOL730EpLJJAYGBrB3715cePv1\n0v31GsKsRi7K4++8AY6/uweBQAB+vx8ej6dq2R7VppohFvXrw7Is4vG49LpoFb3YKXo7E1uQdwgk\nPqzuumYGq4Icj8cxMTGBTCaD9vZ2NDc3lxSC1n0tAIDYvLYwe+rdcAddAAD+jg8j8Xf3YGlpCel0\nGgDg8/ng9/ulH6/Xe8WFp5bxaZ7nS4Ys5OsB6kZOtlBvb2xB3ubIizmef/557NmzBz6fz9I+5K0y\nSxGNRjExMQGWZTE0NIRkMomWlhbTxwl1hjRFOdgeAADkkmJclb/jwzjw3QfF//M80uk0kskk4vH4\nlhLqzY5Py4+rJ9SAXfSynbEFeZuiVcxB03RZoQcjhxwOhzE+Pg6KojA0NIT6+nrFeZAP9Wtve1PR\nY11+ZexYLcpEjMVtXZIoy8+NCG5ra6t0O2n/SYR6cXERmUwGQEGoiYusVQZHrcSMxPytYrboZXp6\nGk1NTQgEApIwa6Xo2Ww+tiBvM+STOQClWyo3Fqz1OEEQsL6+jvHxcbhcLuzatQuhUEixDXHWVj+8\nek4ZKIjy+DtvwNCGS9Y750AggEAgoLhdLtRra2uIRqM4c+YMKIqqqqMWBKFm8e1q71st1NlsVhJe\noLjohRzfnvSy+diCvE3Qmsyh/mBUwyELgoCVlRVMTk7C6/Vi3759RaJHkIc6tNxxKUKdIQgG57r+\n8f+Gxr//F0v7lQu1y+UCwzAYGRkx5ai3Soy6lmIPKGPUgHF1ohy76KW22IK8hSlVzKFFJQ6Z4zgs\nLi5icnISoVAIBw8eNIxFG8We1eEKNf6WIJIrcY3HFYcuKsWMo5YLNXHUPp9PkfVBnvutGLIwC8dx\nJQXfSKjtopfaYQvyFsRMMYcWRFitwPM8YrEYIpEIWltbceTIEXg8HlOPlX8BNPQ3S7eHp1YNH+tr\n8gPQF+Xm3R3gsrmyXLIVzAh1LBbDwsIC0uk0HA4HfD4f8vk8fD4f0um0QqirQa0Fmed5aUKLFcwW\nvTz77LPYv3+/JPp20Yt5bEHeQpA39draGoLBoKkcYjlWHDLP85ibm8Ply5fhcrnQ29srFnVYgDjk\npT/+L4rbiThrCa0WalEOdTcp7q+1KGuhJ9QcxyGdTmNqagrpdBpjY2PIZDKSUMtDH+UK9WaFLKqJ\n/H2ay+XgdDql9wcRagK5urCLXoqxBXkLoC7meOWVV3D69GnLb0wzMWSO4zA7O4vZ2Vm0tbVhdHQU\ny8vLlp01AGmMk+a5uBmEuhsRm10vuo+4YzlaTpl2u8Blqxu6qBSapiWh9nq9aGtrAyA+r8RRR6NR\nzM/Ply3Ute58VwtBViN302aqE+1cahFbkK8gpSZzlPPmKxWyYFkWly9fxvz8PDo7O3Hy5EmpcbvD\n4SjKWzWDmR4Yoe5GANAUZu3tle6YiPKVcMlGyF8jmqYRDAYRDAYV25Qj1LUWzFqHRMzs2y560cYW\n5CuAlckcVtAKWZC806WlJXR1deH06dNF8cNyFwMpikL8k79vals9t7xdMetiyxFqiqLAMAzW1tbg\n8/mqHqOudfy2kipGM0UvL730Enp7e6VF550k1LYgbyK1nMwBiB9+0kUsm81iamoKq6ur6O3txenT\np3WPVSr0UAq9/dFuRvP2UHcj2HRW8z4AaD3YDwDIhLVDF1vJJVcaVigl1NPT08hkMohEIpibm5OE\nWu6m/X4/3G73lhOdWoVb5CEQlmXhcrkUbWP1qhM/97nP4c477wTDaL8ntxq2IG8CpYo5tCj3stXh\ncCCbzeLVV19FOBxGX18fRkZGDPdjJvSg9zir+NubkFxcs/y4rUatelnQNA232w23242uri7pduKo\nE4nElhbqzYhPsywrhduMUvS++93v4k//9E9rej7VxBbkGmKmmEMLEkKw8sZOpVKYnZ1FPB7H3r17\nsWfPnppkZ8ix+qF314kZC1qi7G8vxI49DUFNl+zvbAb7hU/A+ZG7LZ9rLahlHrJ8MCtQ2lEnk0kk\nk0mEw2HMzs5KlXhXQqg5jisrpc4KZj4b8hz5rXYVUQpbkKsMWZRYXV2Fy+WSPgRW3hQ0TYPjuKIP\npRaJRAITExNIpVJobm5GIBBAe3u7pXMuV5CHH/s6MCS6uOj4nHjuOuEKNUZOWS3KoYHOLZVxUctM\nCCv7pmkaoVCoqKxdT6hpmkYmk8Hly5drItSbIciANZG1Bfl1iLqYY2FhAU1NTfB6vZb3RQS5FPF4\nHOPj48jlchgcHERTUxMikQgWFxctH6/SBvUAULchzInZZcuPlbtjLUIDnQAKseSt4JJrXalX6WW/\nnlDn83k899xzYBimSKjlWR+k9Nzq37hZgmwGlmW3zLmYxRbkCtGbzMEwTNkiV0qQI5EIJiYmwPM8\nhoaG0NDQIN1XTqUeeVy1YqKhwW4AQGxiVnE7CVfIMRJivdDFVhDlWvdDrpXYk/dmR0eH4naWZaWs\nDy2hJuXjfr+/pFBXQ5CfGj6t+P3UpSel/1t53qPRKOrq6io6l83GFuQyMZrMQdN0UWMWs2gVeKyv\nr2NiYgIOhwNDQ0Oab7RKYsFWH5f5hzuKj+9ySf8PDXYXibIW7qZ6ZNciuvc3HBgBl0xaOjfCZgw5\nrQW1rNTTc99Op1PTUcuFen19HTMzM5JQq2PULperIkF+4f95I9KLyrCUXIxLnb8WsVhM0Sp2O2AL\nskVKFXPIMRN20IM4XUEQsLa2homJCbhcLuzevbtoUUf9uFr0Qy4XPbesxkiU1VhxyVshzruV9m3U\nWEiNkVAnEgmsra3h8uXLyOVyUp+MmZkZU44aEIUYgDQ1hnD4/xYPvpVnWBgRiURsh7xTsVrMQdN0\nUUcsszgcDqytreHixYvw+/3Yv38//P7icmOtY24lQQYAh8+L+gMjSM8slNxOS5S9XeLiJO33l+2S\na8VWjyGX2nc14qp6Qj03N4dkMgmaphVCreeoX7z6GkmIs3HjRVsrgmyHLHYg5RZzOJ1OJC2KiCAI\nWFxcxPz8PAKBAA4dOmRpHFMlMWQrglxOKMDb01Ekyu4m/ctJIsZ6XOlY8nZ1yJuRJ+z3+9HZ2am4\njWVZKeuDCLXnk39S5IoJWu4YgOnsI0AUZDtksUPgeR7xeByCIFSUumb2WAsLC5ienkZjYyO6u7ul\nXrxWqCRkYUZkyRQR/7/+dfE+XNofLDlaoiynVOiilEvO5XJwmTh+NdmMIafbbd+AKJhar4XT6URd\nXR3q6uow+Z7fgieWUdyvdsfPPfcc/H6/lPkRCATAMIylzAlbkHcA8mKOubk5eL3eom97M5gRZJ7n\nMTs7i5mZGbS0tOD48eNwuVy4fPnypoYejBb15OOc3G43dps9H19xyh8RZT137G6qB9PaCi6mPeJJ\nsa/duwE2jzPnz0stH0k2QCAQKDuGbxbbIRdjtKg3+Z7fAuNlkFUJspzD//cXmo5aHqOenZ1VhD60\niEQi6Onpqfhv2kxsQYb+ZA6GYcr+UDudzpKd12ZnZzE3N4f29nacOHFCUWtP03RZ3dcq6UmhJchq\nISbjnDK/qKyfhLenA3wqXXIbOhQqEmW5S3b1F3o3jy48jfxbPoh8Po9EIoHzB94MLl34e+Y3/h15\n5YcIBALw+XwVx1G3q2haXdQrZ/96zy0R48RSIZUx0BZEPp2HO6QciiB31HJmZmakkvHV1VVMTU0h\nn8/D6XQq4tMsy9pZFtsNo8kcTqez7IU5rbQ3lmUxPT2NhYUFdHV1KVpgqh9L5r1tBlp9ALSEmOAe\nHFRsn52YsHxMpr0N+cWl4ttlk6VN4WQANo/Hu05IN8nFmEB7HZg4/jbZ7zT83/tnyU2TWXpmxWo7\nx5BrWSyhJ8hEjAmBNu1soYHv/NDwGIFAoCiPOp/PS1kfKysruP322zE1NYVHHnkEjzzyCA4cOIDb\nbrvN9PP68MMP44//+I/BcRw+8IEP4M4771TcH41G8b73vQ+XL18Gy7K444478Lu/+7um9l2K16Ug\nk9Q1juMUxRzqF6uchTmCPGSRy+UwPT2N5eVldHd3a7bA1HvsZiIXYo/HozngVPjRF4se594lBjHy\nU5PSbVrhCgK9sTKvJ8ry7bRcMt1SEO2fv/9LcIaccIbEtzIbY0F7jUWVS3NI/vatSAKgfvItLC8v\nI50WXbvcaQUCAc3SYjuGrI2eIOuJcT5t7UqQZVnNEWMMwygc9YMPPohbb70VH/rQh0DTNCYnJ02L\nMcdx+PCHP4yf/OQn6O7uxujoKG688Ubs27dP2uaee+7Bvn378MMf/hArKyvYvXs33vve91a8lvG6\nEmSjYg41lRR3OJ1O5PN5XLhwAaurq+jr6yvZAlN93M0UZJJJcubMGV0hNgOzEUaQC3OlqEWZ7uoG\ncjmc/V/3IrOWl4QYEMVYjfx+9TZcWnyOl970XwGIRQhkll4ikVD0KZanbQUCgZpW023XcAigLciz\n738HAP35iQQz7thq2ltfXx/6+vrwhje8wdRjAOCZZ57B8PAwBjeuBG+++WY88MADCkGmKEpa9E8k\nEmhsbDR9XqV4XQiy2WIONaXiwKVIp9OYnJxEIpFAf3+/qRaYcmqZFyxH7ojz+TyOHj1alhCrYfoH\nwC2b66khd8lG4Qq6Syw0OXf3vyKzpnRWZsSY3Kbe1t3CILuSx1PDp3Hq0pOas/Tki0yrq6uIxWJ4\n8cUX4XK5FGEPv99f8Qez1jHkzQxZzL7/HfC3iI5YLcZW3TFgXZDlrQXMMjc3p1gM7O7uxtNPP63Y\n5iMf+QhuvPFGdHZ2Ih6P4zvf+U5VXrMdLciCICCbzSrCElarlKw45FQqhYmJCcTjcQwMDCAcDtcs\nQ6MStEITL774YlXEmEB39QIAuLnLyttVhQSAKMoAgLpGIFzcAU7uks/9xdeQmBNDC4EuMSzCZlig\nqXBJnJgsvWAoD2/4esXLX3cLA5px4MVfvQYAcOiXP1c+RrXIlEqlpBanRKgXFhaQTCbBcRzcbrci\n48Pn822J+DTP8zVNEZQLcvzPbpXEuBb7NyKZTJoqqCqH//iP/8BVV12Fxx57DOPj43jTm96Eq6++\nuqhQxio7UpDlxRxnzpzB0aNHy5oYYFaQSQvMdDqNwcFB7N+/HxRFYaKMxS6gMkEmfWD1xuAYxYhL\noRU/hlPjeWUKH3i6q7dIlDWpayx599SDTyK+mABQEGI9AgNeOBjxQ5ta1F8cDe0KiGK+AZfnQTPm\nv7ApioLL5YLL5VI4MWIEkskkEokE1tfXkUwmIQiCIq+WLCSqX6vtHEMm+4//2a2K6TBGE8jNhCsA\n8w6ZxPjL+Vu7urowMzMj/T47O6sYFgAAX/va13DnnXeCoigMDw9jYGAAr732Gk6cOKHenSV2lCBr\nTeYgyeS1EORYLIbx8XGwLIvBwUE0NjZWxdlU2gdDvZJeqRBXimlRBoCGpiKXPH7ffyC+mIC3wYN0\nWCmwckHVwtcuOmC1MJPbnR6npii/+KvXoHVfG9q/9B3N/ZZa1KMoCh6PBx6PB01NTYrHpNNpJBIJ\nJBIJLC4uIp1OSwNPiUjXMly1GZV6if/vg3DX+UuO6wq0hRCeWkNDf+mOf2qshCzKnR04OjqKsbEx\nTE5OoqurC/fddx++9a1vKbbp7e3Fo48+iquvvhpLS0u4cOGCFHOuhB0hyKUmc1gNO8jRi+VGIhGM\nj48DAAYHB0vGqcq5/Cy3JwVQKJ8m88asCHEtL5UdQ7tBrZTuZyEhE+XJf/8p2CwLb0PxyrrusZji\nS1pfu0cSZSLGBD1RXj6/hPjb34KR7z9UtL9yniuKojQrMOUDT8PhMDKZDM6cOQOaphWxaVKtVgm1\nFuQ9P/wy3HV+JBf1B9rW9TaDy+YkMa6/++um92+2E14li65OpxNf+MIX8OY3vxkcx+H3fu/3sH//\nfnzpS18CANx222341Kc+hfe///04ePAgBEHA3Xffjebm5rKOpzh2xXu4ggiCIFXvANrfiJUIsnxf\nRNwmJibgdDoxPDxs2LjEyuQPOeX2pJA/dm1tzZIjLhXqqBZCi5g7WiTMWuGKDVHOJQsuy6o7VuNr\n98DX6EFqvTiMoRblYEcQ8YU40utpjGmIcjWfK/V4pnA4jNHRUWkhkeTWkiIIhmEU8Wm/3286rlrr\nRT13XXHM1ul1A4ijrrdywTJLLBYr2RnRiBtuuAE33HCD4rbbbrtN+n9nZyceeeSRsvevx7YWZPmA\nQ70PB8MwhlVvP2u5SvH7r62ck/4vCAJWVlYwMTEBj8eDPXv2mH6hKxHkcvJcSez83Llz8Pv9lkIT\n5czxM4of655nS4cpt3zh3h+bP5cNtNyxGiNRru8Vv2jJvwCKRLmWechk33rVarlcDolEAslkUuqu\nxvM8PB6PQqS1FhJr6ZBzf/9RANB0x3Ix3oxRXJFIZNtV6QHbXJAB4xSxchyyXKDZb/0tFhcXceDA\nAcsrtuTYbrfb0uOsIg9NZDIZ7NmzB21tbZb2YfQ85l74KdCzCwDAzFy0dn6e4kU4SZR1FvPm7/u+\n4ne1Ow62BxCeMt9DGRCFWP5/tSjX94TAZgtXJvJFPnfAhcXb3qOIKV+pWW0ulwuNjY1obCw8d4Ig\nIJPJSI56dXUVqVQKAOD1eiWRzuVyNTnv+J/dWsId62M1XGGW7dhYCNgBgmyEGUGWO2K1W3b+1z9B\nvM0F/8vPWD72lUhfm5qa0qxkMsJK7nN+Q5jhoMHMXbJ8LILQ0gEqV7zwM3/f9xFfLBSDBNtDkiDX\ndYtukWc5NPQrP3AOJ43wtHmRlotyfY+YruR007qiDEAS5VqGd8rZL0VR8Hq98Hq9ilgmz/NIp9NI\nJpOIx+NIJBJ4+eWXi/oTlztDj6AWY3+7+GWRjSorXStxx1Y7vW23XsjA60CQGYYxVf7M8zzm5+fh\nfuCLaGpqwto7/5vi/icOiOksv2JBmGslyKUW62rdglNNvmsYAMoWZq6uGXR0Vfpd7oyD7aJIZuNZ\nSYiNaOgTRVotzHJ3rL5d7ZT1RDmXyMAVEPdT63h7tXA4HJLotra2IhqN4sCBA3A4HFJFonyGnrxJ\nD3HVRguJJFThbmlEdmVdEuNqYyX8tx0bCwE7QJCNPhRGDpm02ZyZmUFra6vUAhMvPyOJsJznf/Vq\nHPnlf5o6t0pKr7UwkzVRboaG5bl6DqVTyXcNQ3DQcC2aL5vmvWIsnoiylhhrPo4t/pJzOJXn09BX\nb9otE3csRy3KhFwig8Xb3gP8fvFMwWqxGX0y1AuJhHw+LxW6LC8vI5FIgGVZzYpEmqZB3/+3AEQx\nVqN2x2qshCuAnT8tBNgBgmyE3qIey7KYmZnB3NwcOjo6ilpgAqIbVotyej1rWpTLLb0GCgJJnKvZ\n9LVaTA3JvfBT0/vJtYv9LIgwa8WPtUg8IQ6z9LXUI7VSENJsvLxue4Aoyu6gG7H5qO42BRdeurue\nOnTR89W/AzWqnaNcCbUezGq0qMcwDOrr6xXukmQzkfg0WUg8OfEzpGfmJTHOruinulUDq/P0rK6j\nbAW2vSBbdcj5fB6XL1/GwsICuru7cerUqZIvcsO/3Yvwu29R3EZEOdgewPD9xTmqhEpCFuSx4XBY\nEmIzs/W2yqBTIsxMxFxPi9jlpSIxrhR3UFxQCnXWlRRlcVtPkSiXcsmugKdoka8a1HLiNKGc/Gm3\n2w23261YSMTEzzSdsRbB/k7w+cquFq3EkGOxGHbt2lXR8a4E216QjSCCnMvlMDU1hZWVFfT09Bi2\nwJQ/fvixH+HSr79VcXt6XXRupdxyuYJMmiE9++yz8Pl8poeckmNuBUEmZBvFJi3u9RnF7SRcAQBL\n//QV+FrMxfvMhCu00BJldVhES5QBoHGwRfo/RRfEMrVauhy4HLZLbJq+/2/By3p2q92xq6EOrgb9\nkEHk3R+DP5u1tJBodZ5eOY2FrjTbXpCNXkye5xGLxXD27Fn09vaaboFJIIL+Ky8/g1duuLbo/lwi\npyvKTqfTUqN5eWgim83iwIEDlqt/KhnjZPpy2VEsgILGbbyjEALKNvYUiTIApB/6oa4YVxKu0MKM\nU1bTNNIGgSs8nwLHS6Jc19uM9P/+MLz/7z1VO8fNKG2uFPr+v4UjGFIIshxvTye4ROn4sXwsk3r0\nll7HPKsxZHtRbwtBWmBGo1HQNI3Tp0+X5TzkC3P7H3y0SJRdARdyiRwu3fSWovCF2UU9IsSXLl2C\n1+vF/v37pWkdVtmsydPlkG3sAet0w78sZmTE/v1+UDLxKRWuqO8XXarAF740whP6ze1JuEINEeW2\ngz1IrRSLs9wlk2IGinYoRJmQT2XB+NxVFeWt7pCJGLMry5r3e3u0uxuqwxUjIyPS/8lCIunvkUgk\npI558oyPXC5nevCv7ZC3CMlkEhMTE0gmkxgYGMDevXvx5JNPVlTXLh/jpCfKAIpE2ShkoRZiefFJ\nueEOh8NR9jw+LUG2sqBnlmTrMLzxJfg6WpBeKm63SSAiTJCLMQA0DLaBcoiva2RqxfTxQ52lV9/d\nQQ88DSV6fshcMhHl2P/4AEJ/+RXT56DHVnfIjmBxRorD41EIsZE7VlNqIZFUJM7MzGB9fR0OhwPL\ny8uGo7disZidZXElIEIbj8cxMTGBTCaDwcFBNDc3V8VpaI1xahxowvqktpDIRVkv5a6UEBPKdbrV\niiGnUilcunQJeyzvyRzs4z9TiLHcHYd625BPlu5prIaItxlh9jaJouJrqdN0ycGeFuQTyuPruWQC\n43OD++InQf/hX1s57SJqPauvEpiH/gkAdN2xWRwf/EvDbeQLiaRj3sWLF9HS0gK32y05avnoLZ/P\nB57n8dprryGdTpfVy8Jolh7hzJkzOH36NO677z68613vsnwcPba9ILMsi+effx4sy2JoaEi5CryB\nPIXMKlqi2nHP/VhXueRsIgf3hlOO/vkHUfdn/1Tkcs0IMaESYa0kZJFOpzE+Po5EIoHh4WGsZsTL\nvua1C7qPNYofE1jnRhjh/q8AIaUDDfVWJ0Wpvr8FTq8b8VlzjllPlJmAt0iU5Wi55FwkBnNJfvps\n1V7IzOPF2STOjdmGfDxWdJ/iuBVmVxBIG13SMa+lpXAFRUZvTU5O4oknnsDCwgJOnDgBv9+P9773\nvfjQhz5kuH8zs/TIdp/4xCdw/fXXV+XvkrN1r41MQjqvjY6Oaoox2aaS2Xhajx247lDRbdmEWBa6\n8vJlRP/8g5IgC4KAtbU1PPPMM5ibm8OBAwdw6NChkpkTlYQsyhFyUiBz7tw5tLa24uTJk4oFxdWm\n3YWfhmHL+5fDhAIlQxVaqMMVAKRwhRbB7hbN24k7luNrKVzaBnsKj2MCSnmVZ1jowX3xk4bblGLL\nztOLbVzB1Ilf0HpibDVcYYVSi3oOhwOBQAAHDx7Epz/9aTQ3N+O5557DQw89hBtvvNHU/uWz9Fwu\nlzRLT83nP/95vPOd70Sr1QnpJtj2gkxRlOGliZmOb3roFXf4PvYZSZQbB5qkHzKyZuXly8j97e3I\nZDKWhJhQriBbdda5XA4XLlzA7OwsvF4vTp06hdbWVlAUhfnZ4qwIwmrDsPSzVjdg+njMw/cpfve2\nNRU1oLErrIlaAAAgAElEQVQartBDT5SrhTyE4e0UHX4uEqtIlGs5PLVcQSahCtQ1ANGwJMblYCZc\noYfZPGT5yLZgMFg07UMPrVl6c3NzRdt873vfM+W4y2HbhywA45StShyyUaZE40DxxIO6niZEZ9aQ\niyaRTqdx6tQpy53iau2Q8/k8pqamsLy8jP7+fgwNDVUkBnJRbooWl0+zTrckxkxzI9JLa/C2WZsW\nYQa1uAe7W0yFL3wtdaA9xa1D1aELeSw5NNwDSkcguC9+EjM3fFBaePJ4PKae21oWhpQjyM6zPxD/\nU3flMxbM5iEnEomKeiGX4vbbb8fdd99ds9doRwiyEbUIWQCiS8anP4rouPJblM3kUNcjis3ef/8S\n/NcW5y8bQdM0cjnrnbGMYsgsy2J6ehqLi4uKvOz5+fmq9d2Qi3NDfFZxH9PciPzquiUxthquUBPs\nbik5Tojgrg8iGzEu9qjb3Q9h4zkWOE4SZW9nGxwbA0TzkSh8Ph9isRjm5+eRyWQUE0DIZGu1wNR6\n4rSVfTOPf0cMVRAxjoYV92vFjpl+1dWS6r1Y3nVqATNfatFotKxho2Zm6Z09exY333wzAGB1dRUP\nPvggnE4n3v72t1s+nhY7QpCNHHIlIQszjrNuqEtTlJ0eFxifG/Mfejc6//HfLB+3mg6Z4zjMzMxg\ndnZWKhmXX/7VKg85HOwGADR+7/Ngmotj/PlYourH1MLpdZcUZV+7+AWhJcpylxwa7jV9zKZ//wxa\nZVkX8gkgS0tLGB8fV0yoDgQCNW3Xqp61aITg9oKqM/fF5+jqBbLmi6BqSbmNhczM0pucLFz9vf/9\n78db3/rWqokxsEME2YhqjXFSIwgC0rf8D3jvLR0XY3xuKfPCLNWKIfM8j9nZWczMzKCjo0O3d0e5\n7TfN0PHMd8FviHF+tXQDGhI/Dg7JhE8o/D2xS/pxbaNm6L72JqQWrS0mypGLMUXTmi6Zz+XgcLnA\n1NfB4fMC3/8c2Lf/sXh+GhNAyIRqMvh0fX0dqVQKkUhEkWtbab9iwJr7dp79AahcaYF1dJn/cgKA\n/Jt+z9L25VLutBAzs/RqzY4QZDMNhsq5/NdDnb42jNIumWBFlCuJIXMcJ/V3np6eRltbG06ePFky\n/qZuv1lqQc8q2bl5TXesxtfXBd6ggXloeGPRhXIgPm5ykjUAV52YZqclysQdE7Rccv2+YfAW30N8\nKg2HzwvHfXeDv/kTmtvIJ1Q3NzfD7/cjkUigr69PctPhcBgzMzPI5XIVzdMzK8jOsz8A5w3CKRdk\nVbgCIROCV0W3b2V9o5KyaaNZenK+/vWvl3WMUuwIQTaCYRhpnE25EPeomUd86DNIffqjmqJMyEWT\ncNX5TYtyuYJMURQymQyeeuopNDU1YXR0VOzvbECtQhZyd6yGaagDU6IBDQCFO5agRFEhLtqKMAOV\nO2XpNAxcMsHh8cDsM0vS3hwOh2a/Yq02mDzPS2OayI/WIqJZQea8QTij2guh0qDarCoTpsbhitdD\nHwvgdSLIlYQsAFHkVlZWMDk5qVvQ4R0aBICSLpmIshmsCqQgCFheXsb4+DhYlsXJkyct9cKohSB3\nPPNd8LIPqlG4wsgd6xEc6oXD7UJy0ryrJ6KsdscEuUv294oLOw6Xq2yXzDz6NeSv/V3j7Q1E0+Vy\nweVyKfo0CIKAdDqNRCKBeDyOxcVFpNNpaUyTfJ6ekSBTr/ys6DbB5QE2hLhcKg1XWBVkUt233dgR\ngmx0KVPuoh4JTSSTSczPz5esrKPe9t8hPPB5tF9/NRYfETu/1Q0VVmiTcwXHYcYlm3XIgiBgdXUV\n4+PjCAaDOHr0KJ577jnLjYlq4pCDIU3n5O4S+x7wqeoWEfgHxHCGWphJuEKNnhgT3PVBOC2s1pdy\nyUI8ZkqUy0k9pChKql6TFyuQRcRkMomVlRWsr6+DZVlEo1FFpgeZTk3EWM8dS8dTu+NNgOM406GZ\neDyOwcHBGp9RbdgRgmyEVYesjhHX19djZGTEdC6xXIgJwf5C85VsOGooymYEeW1tDZcuXYLP58Oh\nQ4dMd8LSQr6od2acRVeFg7I7Xv0J+FVlzwMixED1xViOf6DHlFtmmhqRX7M25ULtkuVhCz2ISzYj\nytXMQ1YvIs7NzUEQBLS0tEiLiGtra0ilUjjU6oV66iBbJxbW0Oky+j5XOVvEDllsIyqdq0fQ6zXx\n8ssvWxJ079Ag0uMTitv4fB4O1Yio7D9+Eu4PaTejKSXIkUgEY2NjYBgG+/fv1x3nZAX1ot5cVnmJ\nSqGQgdHpLj0FpOPVnxTd5nBbn4RdKn5sRDVE2dUhPge8iSG5in0OyNyZU3zNhRVzk1NqXRjidDqL\nmvawE8+BSYiumPUorwhMifEmpLvZgryDMBJk0mtifHxcM0ZsNnxAwhaAtigT3A11oAOim9UTZa0Q\nQiwWw9jYGCiKwp49e6pajWQlZDGfbYeDKt7W6RBvU0cbHc2tgFEDmgrGwzvc2ouWgX3iCJ/c3HzJ\nx2uJMhFjzePpuGTX4JDuY6iWdlGUg/UlXTIRzVpAcp7VMOmoJMTOTOnXqZxwRTXS3awK8nbshQzs\nEEE2csh69xsJMaHSRUGC3CVziRTogA8Oj1tTlOUhhEQigbGxMXAch5GRkZr0eS0lyHJ3rAcR44Nj\n3wYAKVzhaK5+AxaruLo6i0SZaTI/qt7h95d0yczAICB/7ngeIC6XzUsumeos5O3qifJm97LITr8M\np8d6VZsCtwf55m7lbVpXNxVgJYZsO+RthlkhJlgRZLMu2Qw8z+PFF19EJpPB8PCwbjc7Lax2DavG\not6+9Z8DAPhgg7Jrlcodlx0/NhmuAADKq+zUpiXKcuQuuZQ7JhCXLIUnHA6lKGuRzwGMCwjWg3d5\nQZ97GNxVv6HYZDN7WWSnX4aTLVQvqt2xVrgi19qn+J3iNa4cVWJ87tw5aQGRTACx+jeyLGt6jSQe\nj2/L5vTA60yQeZ6XZtaZEWKCVYfM9u6C8/JF7XPQccn8dz8Nxzs/BgBST+J0Oo09e/agqanJkriS\nUnKrgiwIAs6MG/+dWuEKAKDXFkQxjoc177dElR0WYE2U1Wi5ZEWsWMYvfveLmre/8V8/WnSb88z3\nwY4WSm83yyGrxbgUmUbR/dJceWGlvXv3SpM/SNYSIDaUl2d7uN1u3b/dSsiilmGfWrM9z1qF0RtY\nEATwPI9nnnkGPp/PtBATnE6nNJXADMyRN0tNVJjeXcj/7GHDx3CxGPDdT+O1vb+BaDSKoaEhRKNR\ny0NOgUL5tBUXQhb1zHc6UHJw7Nvgg+bjdo5emZhxbHEfWC236XCAnbikvEknfqyHq6sTQonBs+5d\nuwGIaWqloPs2muiw4iv99J+IGTOZ5eL0Sk+r+AX89Ee/AAA4+YWPwZFLg3d5ITAe4MLjwO43iMet\noUMml/3JuUuA01PSHWcCLaC9VXCZe66GG1AsIgKQhiEkEglEo1HMzc0hm83C6XQqRJoMPDXb6U0Q\nhJq1ANgMdoQgA9oNhuShiXw+j3379lm67CeUWzWnh5ZLJux59WFQ7/goKIrCpUuX9HZRElI+bcUl\nkJCFWpDNxI8PRR7TF2OZsAkdYgzVkS9/mrRzUGyOrxZmKziaW4tS8tRQwVCRKOvFkokYAwXx9dQX\nFs8yEeXf+9rdX8aeT/yBJMp0Og5uQ5Rr3qA+Jg6G9WTEKSkZjyi6Tqdysa9cN2z2ysbhcEjhi7a2\nwrQYvYGnpI4gk8nA7/fD5/NpPk9EA7byoNhS7BhBlqMVIx4fHwfDFI8VMkOli3rMr/1GkUt29/Yg\ne1mZlsXFYqBDIQj/5zOg3vmxskdPlRMPLvcNfNXSjyHIHqsOVxARlo5TrhirngMizHDQ4GeU/ZfV\n8eNqQ9wxcbxy5EIsvy0TyaKuxyAr5sLj4NFcM4fcL/+S8FTufjXjxxWiN/D0+eefRygUQiqVkubo\nURSlmErt9XrBcZzl3uNbiW0/MYRAHPLq6iqeeeYZqbKOTOioVU9kPZgjb1b87h0aVPwAgHugH+6B\nft0JDJs1NYTAtJ0w3EYdP86H9EMqXFOZ5bZmz31jlp+jx/zEEiogZhRoZX84mpQTRiitCcsj4tjX\nC5/9Bur7QtKPp96tKcbB9gCC7QG07FFWBb5295fF/eXEUBhZQNuN1Zq4u+SceEWRp4vP0cka5xGX\n7ZirAPlst7a2or+/HwcOHMDo6CiOHDmC7u5uMAyDtbU13HPPPXjDG96AyclJfPzjH8e9996LhYUF\n08d5+OGHsXv3bgwPD+Ouu+4qul8QBPzRH/0RhoeHcejQITz33HPV/DMB7CBBJjPr1EJM2GxBVsP2\n7iq+USa2zpZWOLt7QW100eK/++lNnasXiUSMN1KxP/00nPFCkx7BJRZ/cE0d4Jo64DCTs8pVpym+\no2fAkjAD5lLyFKLcKZZmX/jsNxTbuPxuhDpDCHUqBTzYXrpgh4gyIbvhWr3rxRNXKiE5dwl52q0p\nxlpUTXz3XF2d/UC7uT5N0wgGg+jo6MDIyAjuuOMOfOtb38LJkyfxlre8Bevr61heNjchmww4feih\nh3D+/Hl8+9vfxvnz5xXbPPTQQxgbG8PY2Bj++Z//uSZjnHZMyCKXy5VcrKt0rl45gswceTPyz/+H\n5cdRoXoIsQiOJi8ize+1/Hgrze1JjjPP80D9YdPH2J9+WvP2Uq647HCFBahBcVEOC+Y6wJF4MjW4\nB4gad4C7+DdKEXX5lSIX6gxB0PkydPldyCWVYpdqEb9EeEfho8hkE8hPvSD+v9/8a6JFZHEGkAkx\nwylfAzPu2DQ1yIyRY3ZaSHt7O6677jpcd911pvctH3AKQBpwKp84/cADD+B3fud3QFEUTp06hUgk\ngoWFBXSYSJM0y44R5M7OzpIidCUcstqlaqbDcRxAEt6zGWCjxJja6K7lfeI7wHXGXcLkmHHI6XQa\nly5dQiqVwq5du9DQ0ID7n1aKi5MuXtBjnAKuZx4V75e5YzbYBDpbu/4UlunoLRJlEq5Q42huLbl0\nSQVDEIJ1hmIMAL4m0RAkV7RLjl1+lzQIFwDiX/h7BD/ycen3rKcOvENc63ByGcTnJxHstOb8AWBl\neRkMrxRftRibRcsx1yJ+XA3KnRaiNeD06aefNtxmbm7OFuRyYBhGyn+0itVpGoIgYGFhAVNTUxgt\nd30pmwbcXsDlgfDTr4GyIMqlQh25XA4TExMIh8MYGhpCS0uL6Zgl4yw8BzlXAE6IgqwlxqbCFVro\npLsV32YiQU9DlLUQQmLmjVDXBErDJfPNHRj7i88pblOLMRFigr8lWCTKoW4xjsxplIk7eFZyyQ4+\nD97BgKXFL+f4/CTytBuNbZ1Fj1OzsnGJLhfjvMOt+FdxTiqHfCVjxXpYyTzZzlV6wA4S5Go1GKoE\neU/ihoYGHDt2DDTDYGV2StqmETDtkiVcHnBnfwT6+FtNnYeWQ2ZZFlNTU1haWsLAwAB2796teM7U\n7liP65lHkXMF4MolwAYr7DlbpfhxSTp6wbu9cExdMLW5liiv/su/oqG/sHhJu0UHG5sVi0jUYkzw\ntwRBa+RJ026XQpTVLlmOk8uBpV1guKwkzADAOnQyhigKlCBoiq8WMa8yjm4mzbEUzesb7+0ax4/1\nKFeQzQw4NbNNpeyYRT0jainIgiBgZWUFTz/9NNbW1nD06FHs3bsXbre76I203jRifscql8md/ZGp\nh8kFmed5TE9P46mnngLDMDh9+jQ6OzvLWsknYlwOmxE/Fhj9IhG+f7f5/dQVvmiWH3pMcR8RYwAI\ndTfqijEA+A36Latx8Kzs/4X1DqfMtTJcVl+MtwCrjbuw2qixgF0BVnLqy20sJB9wmsvlcN999+HG\nG29UbHPjjTfiG9/4BgRBwFNPPYW6urqqhiuAHSTIZhxyuYt6BK2wBcnuWFxcxKFDh7Bv3z54PEqH\nOz6rbL24fOQ3i3cuDzHI2xluiLIjJV7+mhFlsqg3Pz+PJ598EizL4tSpU+jr6zM/5FIVP/61pnOS\nGLtyyknRVmPHqbYhpNqGkO4YQbrDwhdUhXDNxR8eEq7QopQYA4C7LqApuv72Jul2T4O5jnzxL/x9\nyfvloiwI+u91qoIqtUrdca3YjNab8gGne/fuxU033SQNOCVDTm+44QYMDg5ieHgYf/AHf4AvflG7\nRL4SdkzIwgiGYSpyyCQuS94Y4XAYly5dgsvlslyKXS6OVBy8L1gyfCEIgpQ8397ebnqmXimubnlF\nOfDSgEywFVDpUKlFoFKi7J3TCDWYiR9vwLuVQXyuuQP0qnFuqlqM1bhlU0j87U1IbszoM+uK1WEL\nglYsmZByFp5UQaBAUUoBzQvK19mF2l+VbAZWBDkWi9VswClFUbjnnnvK2rdZXjeCXGnIgtTTJ5NJ\nXLp0CQ6Ho6KexMtHfhOtz/+46Ha2e1j6v0AXPoxMWOmyM6/8Jzz7lXG6cDiMixfFGF5XVxdGRsy5\nz1Lx46tbXoEnV7pJeapOudgkv/TWgzKZIpXuUoYavAtjmtuVCleoIaJcyh2rkbtjt8ZIqFJC7GkI\nIhNWLfANdBYJMpFXuShH3S2gdEakEqdMUUKRGANADm6wgrgfH7V5GTDNrW3GG1mAZVnTrTdjsdi2\n7fQG7CBBNgpZlFu9RiCtMB0OB4aHhy2/6K09A1ie0U741ywaUZFtKvSbZdJRMOkoMq+Is/vyvVfh\n4sWLcDgc2L9/PxKJRMVTtoFiMc64ggglRHeZ8omLXDRvHAaqZopUumMEAuWAb7H8XhaAKMqOnLaD\nXLnv3xS/q0MVWrib6pFdK11cExpQfnGpXTL1429D+M3/gjV/r/qhJSkVwiCkhMIVnJY4b9VwBbA5\nMeStwo4R5FpBHHEikcDw8LAiD9EsxF2rWT7ym2hc03Z8AEBxeckly11T3lsHjhHj1HQ+A+byOQwN\nHZQu1VKpVEVfPqe6puHlRCHOuJRXAESI9TDjjqtBqr1wJaEnzupwhZp8sBFMXNluM3fmCQCFuYhk\nUGlsYhaAtjt2N9VL/2qJsrerHd6udnAm0i61xFiAQ9clE/ICA4ZSfjkSd7zdeb2MbwJ2kCBXu/6f\n9CROJpMYHh6G2+0ue4goTdPmwyWCAFj4WzjGAzqfAbU2A2y8Ea1U6qn5tfaXwQousA4XnLzyktpp\nwg3XGkGjSX2qfRiCg4ZvxXzJMecWHaOWKGsNqQ0NdmuKLRFj+e9kO29Xu+F56MWS1ZQS5bQgvi/z\ngvjlzVB5XTHOC05EhcLVXZ0janjsKw3LsqYbg7EsW/GayZVkx2RZAOZGORk5x0wmg/Pnz+PcuXNo\na2vDiRMn0NTUpOtyzUAWBNt6ixuaG6XBUVxBBOXuk84XFtmIW46Ov4SV6TFLvSz+7ntOXJ7ncHme\nw9WdF8E6xDezWoy1MBOu0MJs/NgswsYiX6plQCpFtkI+KMaSiTsmOGQfbIfPC29PB7w9hUwNtRjL\nbzcjxlo033+36W2jXJ0kxnKIMJvaB1+HNbYJq6z1vttaVDt+DJh3yNu5DzJhxzhkM5CFPa1vUFLB\ntr6+jsHBQezdu1ch8JZcrsZxiZjPsUr3RVECGqEKW5h0yXQ+I4mxk8uApT1wsRnk4mto9pl7ad8z\nKlayOYXS4lquO74SJbZElD0xc5OeAWMxluPt6QCf0q5EZFrFQgsuVtzgnvb7TYUt9DATuihsSxXF\nhfMGIQy5KLO8A+0uc4155Lz66qtSc/lAIFB2y1s5Vnt7b9deyIAtyMjn85icnMTq6ir6+/uLKtjU\njy0HuZgfHXTjuYnCYpKZBRm9WLIeLjaDnNODlWlR6HO0KCjyvsXy46rF2Iw71mKz4sdm4B1OpOrF\nhVBfZFZxHwlXlAsdCoEOhZBfXFLcTsTY8v5Mhi2AgihHOTHskOMZuBzFX5ZJtpALH3CWV8a+mFP+\nPWYEuqurC4lEAisrK5icnATLsvB4PAqR9nq9lkTTrEPOZDLw1rgXdq3ZUYKsNTVEjrzjG8uymJ6e\nxuLiIvr6+nDq1KmSRRNWxzjJMWqj+XL9G3Eg8gvljSVcslyUtVwyIIpy0l0PAYV9UIIgiTJFCZIo\ns5TSxajbNAqgEOKV5cTlhisqQSt+bIZUfXeRKCv2+5iy2KaUO6ZD2g2K1GJMh0KGLtnVLwuvsIXn\ns+fZf8PMsXfrni8RY4KeKBMSrFdXlFnevATMZ5VhmE638gqEhCtCsudIEARkMhkkEgkkEgksLS0h\nnU6DpmmpsXwwGJR6lmueo8m0t0gkojj2dmRHCbIRTqcT2WwWk5OTUuem06dPm6peq9QhlxJkqy5Z\nC3lPArlwURCKRBkAeJ3lA0Hn9hjTpNpOec6NWXONwGsVPzYiVd8NzsHAl1S6vErEmGnfiJfy5mKX\ndNfGsNBc+Q18VnNiSpeLVr4X5aIsd8cEo3CFHJYvfg/wQvFt89l2xfugWSOcQlEUvF4vvF4vWloK\nAwBYlpVGNS0sLCCZTILjOHi9XoWb9ng8ph3yds+wAHaYIJe6DOJ5HslkUnLEp0+fNp1sDlS3fac6\nbAFYd8mRkH76HSXwJUU5h4IDdqLgrPTE2Azrbo2yZJVotyar23hdj1IhnZS/tUiUzaDnjFHXCIS1\n+ygTl0yEuCRORuGStSBirEeOZ5Dntd/TWY6Bm67uVY369bWC0+lEXV2dIp9fEARp8Gk8HsfCwgIy\nmQzS6TQmJycRDAalwadan91yW29uJXaUIGvB8zzm5+cxPT0Nj8eDgYEB9PX1Wd5PLR2yGdYbxbxb\nvcv2YiesLcpyMQYAFhu9d6H9YdX60JX7QVz2a2dAtCXGy9pfuaT84tVE/Ss/BwZlmS9O2RUI4wI3\nV6J1Z52syq+hSVuUWztAa4yBgssFGLhkddhiKdsMmiq8h3Kcs8glA0Ai50HApV3mvp4JoNFT6ENi\nJVyxGVAUBZ/PB5/Ph1ZZCOjpp59Ga2srEokE5ubmkEwmwfM8fD6f5KRpmkY4HLYd8lZF3pO4paUF\nJ06cwPLyctkNhioRVZqmkVN9APd1Cjg/r1xk03LJRIirQalqrBQvLnR5HWX2Ma6ApcBQ0W3VFmnO\nqEOaSowBgO7aKNKIq/KP6wxKrltlVwteP5CurGx5KaudkqYW5XBGfA21RDmZF7+I1zNiYYtcmOVo\nhSvMUMdNAOgv67FGUBSFhoYGRQUez/OSm45Go/j85z+Pxx57TFpAP3z4MG666SbLi3zr6+t4z3ve\ng6mpKfT39+P+++/XrfzjOA7Hjx9HV1cXfvQjc50YjdhRgkwW9ZaWljAxMYHGxkYcP35cyqpgGKbs\nkuJKQxZEzHO5HCYnJ7G2tgZP+zHdx+jlJ6udr+I+A5ecFMQPo5NSxx8LcdM0L76BvY50RZeklaIl\n0uqQh9n4sRb1r/zc1HaCxwt4vKBWNmLkemLc0CQJedmowhZz6VY4HYW4LCfQCpdcilJOGRCFOVTi\nfjla8WM1VsJ/1cDhcEgTp9va2vDZz34WX/7yl8GyLI4dO4YXXnihrP3edddduPbaa3HnnXfirrvu\nwl133YW779bODf/c5z6HvXv3IqaxeFsuO6owJBaL4amnnsL6+jqOHj2KPXv2KFLcrtSgU+KQx8fH\ncebMGQQCAZw+fRpT60HFz+RaCA8Kb7XWM1mF2gWTRTQixoC5kloizGrMinQtxHzZP6D40cIoJRDQ\nEGMNdwxsiDH5f0sHhBb93rechUZFAMSwhQGnzht3FstxG90HM8WpfImcuLhH3LGapWQAS8ny+lur\nX99aCbKVaSGxWAzd3d249tpr8bGPfaysFLgHHngAt9xyCwDglltuwfe//33N7WZnZ/HjH/8YH/jA\nBywfoxQ7SpA9Hg+uuuoqzZ7EQGWianWME4HneaysrGBxcRE0TeP06dPo6uoCRVF4x/HyVtutZCpE\nhAZE+eKFDiLKcncsJ8cziLHldbLbLFa9PYofPQzDFQQDh8t7g+DqlOEDLtQoiTHn1RE3b/l5z+oQ\nAicUC99crLKFrEqEmVArQd7sPhZLS0tS0/n29nYsLS1pbnf77bfjb/7mb0z3FzfLjgpZaE3okFNp\nT2QrkBj25OQk6uvr0djYiP7+fsPHcTyFp1Z341SzuZFDWpDQRUQovSrPCk6kODd8tH7fXCLKIWfp\nFpxbAbko66XhlXTHMuTuGBDFmMDVNYOOrlp3xQDy7QVnLy+LVx68eiXAeu5Yi+mIuADZFdKOL+sR\nzF8C7a1N/q+V1ptmBfm6667D4mJxFedf/dVfKX6nKErTnf/oRz9Ca2srjh07hp///Oemzs0sO0qQ\nN2NqiBGCIGB1dRWXLl1CfX09jh8/DkEQ8Morr2hu/47jOfyfs9Zjj6ViyQCwxitX5VmBhlMn/qgW\n5RxfLFIxNogc70STq3SLyc3CqF0kScOjICCU105LU6ATqgCUYkzQE2POGwCdLghaprGQ8qYeICrQ\njL4ob3A88ROcDbxJN5a8khTddyrnhM9VbDbCKRcafMVXYum8/kd/Lia65a5QQjN+rA5XcBxXM4ds\ntfWmGUH+6U9/qntfW1sbFhYW0NHRgYWFBUW2B+Hxxx/HD37wAzz44IPIZDKIxWJ43/veh29+85um\nzrMUOypkYUQ15uqVCluEw2GcOXMGCwsLOHz4sDRXrxppb2ZZ5Vuwyrdo3seqLncTbEF4Upw5J7WW\nq5d+9LiSi4FaxJgmxJgmU+7YSIzznpD449X/+1Otg8g0divEuNpwAi2JsXTcnLZwhVPlLTbOxQK4\nHDYOt9RSkK2GLCrthXzjjTfi3nvvBQDce++9eNvb3la0zV//9V9jdnYWU1NTuO+++/Drv/7rVRFj\nYIc5ZCMqbTqiHuNEiMfjGBsT+0bs3bu3aIqIVUE2G7ZQu+Qlth20o3AcrVV5K05ZTk4jZ3UtVy8V\nIrR7TLjQLUS+b6/0f3m2BhmZxKSLrwTyHuVled5bL22XDZbXx8IsLO9QuGQ95E45ki584eg5ZUIm\nr1NSNtQAACAASURBVO/N5KLc21CcwrdVBLmS8U2EO++8EzfddBO++tWvoq+vD/fffz8AYH5+Hh/4\nwAfw4IMPVrR/I3aUINe6yxNx2OQNkk6nMTY2hkwmg5GREd1vZ6MFwXLDFnKWWPPtHlmBRobTPl6K\nc8NJWS9vXswUSqvbPOslttw85GGNjrWXkO8pnsyiJcYAkA4W2kh640tFYkxINPSBYYtzt3mnCw5W\nKYAc7TIXtqAowzjyfFR08h7GfLyZiHKpcIWcPFv8eboc9oPlxNsHmpM43MPjxRdrK8hm953L5TQX\n863Q1NSERx99tOj2zs5OTTG+5pprcM0111R0TDk7LmRhRpTL7ZtKBDmbzeLVV1/FuXPn0NHRgdHR\n0aqPjSEu2YgFtl0hxpyqdFZrVT6cCSCdr7yJt16Z7lyqWfqpBRWPG9LIX5aLMetUhm8S9T3IepSZ\nDFlPnXRb3lnbDmPHEz8Rz2sj44KIsR6pnFPhjuWUG74gEDEGgMlV0TlvhRjyTuiFDOwwh2wGvbCD\nGSiKwtTUFKLRKAYGBrBnz56qufJ3HM/h0w8oz4lxUjhVQtPmuU79O2VYLSgAgHp3oYBGK1yhhzpN\nay7VDJ4Xn6OewIrp/VSTjrWXNG/XKiyRizFHK8VLLcpGmHXJVlCLcSZPabrkWNKBkF/7Smc54kRr\nfWEtpVS4wgy1DllYcb3buRcysAMF2agFpzrsYAae53H58mWsrKygs7PTdIe4SsmzAu5/aTduOqiM\nJc+xXYoR8DyUlzocTytiyXLCmUK+aTrvgpfRFodI1qcQ5WowkygsNpKFv96A9UY/ZtB10QbumCAX\n45yGA3apwhR5pxdppjgbw4ybb4xMmgpbzKyL5+FmSoeUVmP64hhLiu8UtShXgiAINfs8mP2sZrPZ\nbT26ibDjBNkIK7nIgiBgfn4eU1NTaG9vR09PD+rq6sp685HxUaUe+7G3sUUuWY562ogVOIFGLFss\nLOWKsl64wiqXE4XFMCJe1XTSRu5YK1RBxDjYt1dsYiMI4HkegiAgmUziwoUL6O/r0xRbddGO1uQO\nNev1A4bFPoOYwgz2at5XjksGSouyVvxYzduuigE1zqgx6753Qqc34HUoyGZykQVBwPLyMsbHx9HU\n1ITR0VG4XC5MTU1V3PHNqpgTl/yGvcpkfUGgLLnkpYTo3rxM8fkTUSbhCjmRrDizzacj2nLKbUyj\nhjhph6NYZGiq+DZG42rARbPYE31ceeOGCKtDFeFgtyJVr72jUCJNXi9BEDA5OYlIJILdu3ejrq4O\nPM+D53mE11al7QXKUfWez2qyeUeRSyairHbHclEm7ljOckSUgFLCTZDHjwHgzJkzcDqdyGQyWFhY\nQDAYhM/nq6pbfj31QgZ2oCCbKQ4pJarr6+sYGxuD3+/H0aNHFfGrarTgNJoxZuSSrwSJrBOJrBOt\nAeshDBI/lqOVp1zxQp0MrbaUatbqChVz5HzCkQiCwSCi0ajU0lEQBCwuLmJqagq9vb0YGRmR3mNE\neNo6OjE5L05v9lHFaWFmXHIthdzIKSfTApJpCh3N1l6DEydOIJ/P4+zZs8jn85ienkYqlQJFUfD7\n/VL/4kAgUNaaDWBekGOx2LafFgLsQEE2Qi9kEYvFcPHiRTidTuzfvx+BQHFtP5k4Ug6VDEnNswIe\nfzVQtksm7hgQK7S0XLKWO1aznBDdcjnCXCu03DEATXe82lDcypSIcXNLCzxeL2KxGGZnZ5FIJMBx\nHPL5PHw+H4aHh9HQ0KD7hT/QKV4uT86Lv+cFJ+qpcJl/lTFaLnli3oFQBS0pFlZFUTYTriA4nU44\nnU709vZKt3EcJ00DWVpawvj4uDQNhIh0MBiEy+UyNFBmBTkSidgOeStitXw6mUxibGwM+Xweu3bt\nKhmHqqTiTt6C04jbfyuHP/lHZYiAcdHQCSGWRC7GBC1RjqQZ1HvNlZUvJ3xo8JX3xVQJWuEKM6w2\naacPEjEmIYr6+nrU19dLnfkSiQQGBwfBcRzW1tYwNTUFjuPg8/kQDAYRCoUkYSEMdNZhcj4KhmIV\nvUTqqXDFVwFv7HgVv1go400A7XCFFgurFNIZAT3tys+ROlzx9iNibxOtGC9N0wiFQkWz9dLpNOLx\nOKLRKGZnZ5HL5eByuSSBDgQC8Pl8is+wlRiyLcjbEDKsNJPJYHx8HPF4HCMjI2hqajL12FpODZHH\nroGjivvyOQ5aCyilXDLpSeB2lr4UXkuJi1laopzIar9F5iPiAmFnvZhtUK34MUErfmwGF82i2SnG\ndPWEmBDh6rGnW9ZiUxAwOzuL2dlZ3bRGsrAXj8clkc7lcpL7CwaD6GgMwe12Y2ohJs2yiwgNipzw\nZkfxwqXVsIXcJc+viOcZSwgIBYrfJ6thHs0Nxa9RMq39PM8sbiywtpc2OGYFUz4NpK2tUHSTzWal\nkU0rKytIpVKgaVoKdbAsC57nDY9hC/IWxUwe4tLSEhYXFzE4OIh9+/aZzl2spSCHw2FcvHhRil3/\nyq948PF7lA3E73/UgZuuNfeBJWIMAFnWUSTKeqELK04ZKAhza6jYMV+J+DHBSIzbOjrRJvs9Eong\n4sWLaGhowOjoqO5lMkVRkliQNo1ksnI8HkcsFsPc3BwymQxcLheC7Xu0z2+j3wjH02hzFnceswIR\nY4JalFfD5cemiTB3tGh/RirNQXa73XC73QpDRAagxuNx5PN5PP/88xAEQRrZRNy0/MokGo1iUD6O\na5uy4wRZD47jMD09jdnZWbjdboyOjlpeDa7W1BA5yWQSFy9eBM/zurFrglmXPBUOgqGNRS6ddyKV\nL/4wEVHWc8dazKx50NNkbgJFtdCKHxN3XIq2jkJBTTablUJW+/fvh99vvXexfLKyvDtYNptFPB7H\nfKoOHjoHmuI0KyfllZY8gE563vSxs3kHYPILTc8ly0lntPd1eb7wXP/RbxbWEGpRFCIfgDo/P4/j\nx4+D53mkUikkEgmsra1henoa+XwebrcbDz74IKamptDR0WGpob0cs6ObPvOZz+ArX/kKKIrCwYMH\n8bWvfa3icm05O650Wg3P85iZmcGTTz4JiqJw+PBheDyeslJzrMSB1agX9bLZLM6fP4+XXnoJfX19\nOHbsWJEY//2Hi1/o+x8tfd6Xw9pN5bNs8eOWovoZH3qltwCQzmmfw8yaR/qpNmbix2ayK4gY8zyP\nqakpPP/882hra8NVV11VlhiXwu12o7m5GYd6Gd3eIWocECsw5T9y3tjxquL3mQXt92Msof18yd2y\nXrhCTT6vv10tq/TkefsOhwOBQADt7e0YGRnBkSNHMDo6it27d2NkZASLi4v4l3/5Fxw5cgQ333yz\n5WOR0U1jY2O49tprcddddxVtMzc3h3/4h3/A2bNn8fLLL4PjONx3330V/51ydpxDJt+O8tl6LS0t\nOHnyJBiGQTabrSjsUGnIgmVZTE9PSyGTvXv3WvpG13PJgFKM8xxlyiXHUw4EfdqXtKsxGs0h4y+g\nbL74fGbWPMizQH+L9cW/cuPHpdzxKtuM/T2iKK6trWFsbAytra0YHR3dlHlwezuAVxdcyLAuBF2F\nKj/awRX1H1GjVxBExDiV5uHzFn9JxhICchpiuhrm4fVUp6DjSnZ6oygKHo8H73rXu/DQQw/hU5/6\nFA4ePIh02vqg3gceeEBqNn/LLbfgmmuu0Zylx7Is0um0NJ+zs9Nc+wKz7DhBljeID4VCOHbsGNzu\nQn+CSprUlzvGCRAFeWVlBbOzs+jq6jJdfv2Xvyfgg38ZVdz22a8Ct/++8nJqci0E2kDI5LFkuTvW\nEuVIQjw3s6KsJr/xvTW1UnjutcS53PhxOOVCayCN5URhUa5Tp6XzYk4cFrqwsCCN0jp8+HBZM9es\nQqo9L1++jP7+fsywnYjnvApRNoKiBAhCQUBZDnBWqIHpjFAkynrhilJsldab8l7I5byuZkY3dXV1\n4Y477kBvby+8Xi+uv/56XH/99ZaPVYodKchLS0s4dOgQfD5f0f0OhwM8X9tKKvX5rKysYGxsDC6X\nCydOnDAsDpFD0zT+6Ldn8Q/f0252PrWuP/dOyyVrLfAB5p2yXrjCDBNLxYo52GbeQc9HCqEQr4tX\niPFVTZNaD5HEOL92HhejUWkh6OLFi1LaWigUqkkfhHg8jtdeew2hUAjHjx8HwzB44WU3Gn1ZxHPi\nuQdd6SKX7IAYS9ZjT3sMP3tR1ZxewyUvr+RQX6/9XotG84hGgfa20n+3OlzxkbckII901lqQrYxv\nMuq4WOnopnA4jAceeEAay/bud78b3/zmN/G+973P1DmaYccJMk3TOHDggK6T3cxuUNFoFBcuXIDX\n68XIyAgikYglMQbELxCO4/CNv2rH7/xp4c302a+G8fbf7lVsy/GUoUsGSseOgYI7llOuUzZC7qAJ\navfnttDzlzCfbYeD4uF08IjPPYeOjg4cOnRIuspJpVKIx+MIh8OYnp5WpK4RoXa73WW9X1iWxfj4\nOGKxGPbs2aMYWPAbBzJ4+GUPGjfyuJeT4n1NXmvFNvk8D4ZRvk56oYtSLC6J+e5GwkzgOE5aR6Eo\nCvl8/oq33gSATCZj6IwrHd3005/+FAMDA2hpETNk3vGOd+CJJ56wBflKY7SSm0qlcPHiRbAsK00Q\niUajWFuzPlWDxJ7LDZVoueRkWoDfW3z+pVwyIIqy36Ny3Brx40owcynudSnPUe2OiRgDAGJjOHLk\niCJsRUp7/X4/2tvFDAeSuhaLxRCNRjEzM4NsNgu3261w0h6PR/e1V5dZ79q1S3NbuSh7GRbpvFMx\nx04LddjCiOUVUWgjkXyRS45Gi0N2i0s51NUZmwWXywVho9lSLBaT1kJIGJC4S4qiKu5pYTZkQT4b\nlZgtMrrpzjvv1B3d1Nvbi6eeegqpVAperxePPvoojh8/XvYxtXhdCrKZzmt6lOqnTCq8IpEIRkZG\n0NxcaGZcScocz/PI5/P46v9swjs/fEm6/ev/HMb7bz2s2NbIJc+tlv8hiSUExBJAh0Hf+bzJP7Pa\nHRvnsh2KmHRfXQL1fftNPVaeukYKFwRBkFLXYrEYFhYWkE6nxfximZP2+XxSFziv1yuFJ0pBRNnL\niG7Tw/DI5B3KAaMG52zWJWuJshbz8yl0dhaH+QgfvTELQLxim5ycRDQaxcGDB+Hz+SSRJv8CkJy0\nIAigabqoB4gRVtvkViLIZkY3nTx5Eu9617tw9OhROJ1OHDlyBLfeemvZx9SCsui8tkVb/nw+XzJO\nfObMGRw+fLisuOGzzz6L/fv3K3IPSY7zwsICBgYG0NHRUfTmyGQyeOWVV3Ds2DHTxxIEARzH4cKF\nC4hEIqBpWhKCD/+F6KTUggxAU5AZWigSYy2XzJVQAXkqFRFlLYesJchaL4fW51LLIatDFnKH3BJQ\n5j5TEKRQBcmqqDa5XA6xWEwqA45EIuB5Hs3NzWhubkYoFILf7zclEHJRVjeKz3MUehvi0u9qh/zI\ns94iQQaAREL7G5GIspZDBoBksnB7Z6evKH780RuzUoZKV1cXuru7df9GuSgLgiD9FP4WsYeyPK1N\nzczMDGiaNsxkyOfzuP7663H27NmS211hTH1bvC4dMnGr5Qiy3OnK+yV3dnbi1KlTuvE0K30wiMsg\nb+rdu3eDoiiwLCsJwZ//YRbJZBI0+0vMO39V8Xgtl6zljLVCF+sRHo31xg5mYSPDrLHGLWhLibEa\nuTuulRgD4mV7U1MTOI7D4uIihoaG0NbWhkQigVgshomJCaRSKTgcDkW4w+/3FwmP3CkTlyxHnsrY\n2xAvEmUtlxyPZxEMFsfmI5E8zJrI+fkU8lkWnd2F4//yl78ETdMYGBhAY2NjycdrCS15P8udNPlM\nyOPS5IdlWUWoSY9oNLojOr0BO1SQjZyJlSb1aoggr66uYmxsTCq1NRJ3s70s5EKsXu11Op1obGxU\nfBjy+TzmXzY+70xGgMcg93RlXTyulijrFRrMLXLoaq/Ooo7VVC61OwYAB8XjcF9t39apVAqvvfYa\nXC4Xjh07Jr326teGZVnE43HE43FMT08jkUhIBQ5EqEkxUDpPS06ZwNAC8rKmPpfDQfAKQRbfw3JR\nXlgQ23/qibIecncsZ3624NDfeVU/XC4X4vE4FhcXi2LswWAQXq9X9/On54blAi3/DMRiMfj9frAs\nWzIuvVP6WAA7VJCNqCQXmeM4nD9/Hn6/H4cPH9ZMrdOiVA6zkRCXgmEYvO1IGg88r1xhlrvkywv6\nj9db4LPC3KIoJF3t9KbFj1djNFpkhY3EHddSjDmOw9TUFFZXV7Fr1y7DNCun04mGhgbFdhzHSSJN\n2nw2AAj734ilKIM6n/lMlt2DTlyYKDzhRIz1WF8VMzmaWozfs/ms8oX8339AgWHErB75QiiJscfj\ncSnGzjCMJNChUMiwaT25j1xdxuNxnD9/Hs3NzWhsbJTWfAAoTI3D4QBFUTtmWgiwQwW50ib1WqTT\naYyNjSESiaCnpwcDAwPGDzJA7gpI5obVhQlyXsBJzfvlYlzKJRN3TDAbupAzt8ihtVljZl2Zad/q\ncEUyQyGZEfe/t7NYfBbiPoTGX5FaP5q53DXLysoKxsfHpSnj5WYQ0DQttfkk8DyPRGIZ/397Zx4e\nRX3/8fduNsfm2iTmviDXZgkYIAdSRaCteCCtRWlpi9UW21oLEapUqDzyI1pURFoQL7BVtFot0grV\nUqzyAJ4QICBirg25kyXJJmTve+b3x/KdzO7OJrPJZjck83oenicJuzPfPeY9n+/nPFyXCo3R+fp8\nEWZveLOS+3qNvESZDVeQklTKRUREMKlggNPHTkS6ubkZBoMBYrGYEWmyM3B371EUhaamJly+fJmz\nr4u7JU1+PnToEDo7O316PeOVCSnIw+GLhWyz2dDU1IT+/n7k5+d79L8dKSRgR4TY1wvcbrejubmZ\nWVfxNZ5W8sV2GqES9+Cipyh762lARNmbu8Jk8lTa9s7BPs5ZGf7z46rU8Np8XQQaKl0kvp1/GVpt\nNAYGBtDW1gar1YqIiAhGoGNiYnxuBGMymVBfXw+xWIxZs2b5tZEMgfiafzTHiH1VTqHUGEMgi3R4\nuC3EItrNbeGktVmDsAjPy5mPKHtzV4wU4mN37+BGfOxkZwAAUVFRiI2NhVgsRkdHB9LS0lBWVsZp\nmLhb0j09PXj44YchFouxc+dOv76GYDEpBTk0NHRYQaYoCq2trejq6sKUKVOYnNLR9MIARueeIOvq\n6upCe3s7srKyMGfOHM7nt3TyN0sv9Tjfi9gYz69D/wAFiWRkLg0izhlpwwszl/9Y5aU1Bds6FoFG\n2+Uo3DHbBMAzbY0rt5iINNlScxWAkM+/u7ubd79sf6Dup5CY4BSerj7nm5IU5/2zLMyV4Ognzskk\nVrOdU5SBQXcFm75eIyIiPS1fd3fFtt+O/sYqkUg4dwZarRYXL16EwWBAWFgYVCoVNBqN1wEAgPNz\n/ec//4lt27ahsrISS5cuDWjB11gyIQWZj8vCWwMSmqahUqnQ3NyMtLQ0j8yJkY5xIpZwV1cXU2Dg\nq1Xc19eHxsZGZvCqe44mlwjb7PysZADQ6uweojww4BTrxMThL0qLhXub3dbh+n6JxIPnnpIZhtYO\nK8LDXd+LSKmrQnM1XQfAEmNPvOUWs3sXd3R0MCJNRID4ilNTUzFnzpwxG3HvTn9/P0riGlDdvxCJ\nCWJESQGDCWjvFiErZeQZpzqd9++r+pIWianByVAglazsFLqhBgB8+umnCA8Px3//+18kJibi6NGj\nLrn+E4EJKcjD4c1CJjmWMpnMa+aEr/5ntkUsl8vR19cHlUoFs9nssp0eyuep1+uhVCohkUhQXFzs\ntUR0zRILdn7gm9+UWMfDoVZbXUSZy13BhcMxtJC0dgw/zZoNsY6b1VGQ8Ohm5w5X72ISnCI3PJvN\nBolEgsuXL8PhcLi4O8bCErNarUxl58yZMzFXasaLhyMYSzkiXIT2K71uslJor24LgNtK7u92ZkrE\nxHH7jdWXtAAQMGG22+1obGyE0Wj0aPLkbQCA0WjEwYMH8fHHH0MkEuHSpUu47777cODAgQljHQMT\nVJB9DerpdDo0NDQgJCTEa1Mi9nP55BOzgw7EOmZv2YgIuG+npVIpZDIZY0W3tbVBr9cPO++PwCXK\no7WSCe6iHAya1a5NdbxZx75AGlKpVCoUFBQgKSnJo0qPTAEJDw9nLOnhSqn5nJd0gsvLy0NSUhJz\nrN/e6hRlqVvVXXu38/8zPFstMHhzXegGjF5FGeC2lv3hrmDT19eHhoYGZGdnM/n1w9Hd3Y3f/e53\niI2Nxf/+9z/GfdTf3z+hxBiYoII8HESQzWYzlEolTCYT5HI5r1xGPhYyn4AdO0LNttRMJhM0Gg2a\nmpqg0+kQGhoKmUzmYq2NZKQ6lyh7s46JKBN3BRu12oqoKM/ze3NX8MHdXeEOcVdEsLRBEkL7RYzJ\n6KzExESX3sjeMgjITdS9lJodOBwqF5eg1+tRV1eHmJiYIUdGmUwUpFIxIsJFMFsGdwStXYM/5+bH\noalxgPP5xDomsEVZr/V8/7panI77pDTntaDT6TgLWnzFZrOhoaEBNpsNs2fP5hUcpSgK+/btw5//\n/Gds2bIF3/ve91ze1+GKU65GJqUgi0QiaLVaVFdXIz8/38UyGY6hmtSPNmAHgCkiSE1NRUlJCcRi\nMYxGI7RaLTMA1eFwMMUFRATYfm4+rovOLmeQJyradwvIYLBzirI7XO4Ktv/YG+7+Y8BVjP0BcRNY\nrVamHwMfwsPDkZSUxCnS7FxcItLEmiYiTfpA9Pf3Q6FQDFlhRqxkIspsJBIR7HbvLhur2Q69hvuG\nNZylDAC9KqfAt7R0e6StxcbGIjo6mrdI9/b2orGxEVOnTkVqaiqva0KlUmHt2rVISEjA8ePHJ6T4\ncjEhe1kA4Ay8kXFO7e3tcDgcuPHGG32+85Ohi3PmzGH+5g8h1mg0UCqViIqKQl5e3pCpdRRFwWAw\nMJaaTqcDTdMuIr33U+49LbGSiSAD3KJMDeH71WoGK+TS0p25aFwWMl9BHi6gZ7VSyGRVA47GOmZP\nls7NzUVycvKY+YXZn4/R6Hy/LRYLEhMTkZOT4zHy3hsvHo6AVmf36MbGFmRlfT9CQlzfxz7VAMIj\nuW/M2n4tZImuLjCr2dWfv/eJwe8QO21Np9MxaWvuIs02DKxWK+rr60HTNBQKBa90UYqi8Pbbb2PX\nrl148skncfvtt08UtwSvFzFhBdlqtTKVccRHePHiRaSkpGDq1KmoqqrC9ddf7/NxaZrGl19+ieuv\nv94vQkzcJjabDXK5fMghp0NBURTj79RqtdDr9TjRO9/jcaESkYsYA6MTZMApyiMVZC53BVuQucS4\nOK6GufH40l+aRPXj4+ORm5sbkNFNgFOE6+vr4XA4kJqayqTiGY1GhIaGuljS3kT66XedOxK2KLtb\nyGxR7rti4Q4lyABcRHkoQebC4XB4iDRFUcx3eGBgAHl5eUxwbji6urqwZs0apKSkYPv27cNWQl5l\nCM2FAKfjn0yHKCsrG3X1FrlYiBCPtMLObrejpaUFfX19yMvLG3X6jlgsZib1Ek584Pm4lhYdQsNc\nhcigt3qIcr/aiIREz22tuxgDQPNFZx5seuboo/REjHt6nOeJi3NdV5uKxpzUCKjVajQ3N8NmszHF\nBUTU3EXaZrMxsYKioqIR3/R8hW2NE9eYO6SqjbikiEizA4eRkZHY8EM7nn5XwnRqk8lCvbotiBgD\ngMVo8RBlIsYAoFFrIEuUeYgxH0JCQjy+cyaTCd988w0oikJ8fDza29vR2tqKqKgol9xi9mdEURTe\neustvPDCC3j66adx2223TRSr2GcmrIV8+fJl1NXVQSQSoaCgwOMi/OKLL/Ctb33L5w+epml89tln\nSE9PZ7IhfLG02JH1zMxMZGRkjGmeK9uX3Nnh3Ga6CzKBiLK6e7Dwwl2UuQTZbHIN/qVnxo7YXaHX\nDR4rLi7MxTru6qFQsdj1/CQliuwMtFotHA4HIiMjERsbC6vVCrVajZycHN7+S39AxjfFxcX5bI3b\nbDbG6iSWdEhICGJjY/HeeWd/Z1Jdl5zsmgJ54thFznOxRZktyARptOtxhrOO3SH5+62trR69wCmK\nYj4jUlJtt9tx5MgR9Pf34+zZs8jPz8fzzz8/YZoEcTC5LeTu7m7k5OR43faEhISAoijeFwrbPVFc\nXIyBgQGoVCoolUrQNM3c/WUymdeodH9/PxobGxEfH8+ribk/IWIMOCdXexNld7xZykPR1aEFZXe6\ncdKyhk/Vu9Q5uLboWO4dTFuX40qDdFfY0z/Yeas9PT1obGyEWCyGRCJBa2sr1Gq1SyB0JNkqw2G3\n29HU1ASNRuMxvokvoaGhHqXHNpsNOp0OvT1GJCVHIioqFAaDDT09JlitDmRmDhocXHPuiKXMJcaj\nxWw2o7a2FuHh4ZwZI6TDHdsocjgcOHHiBI4dO4bMzEyoVCosWLAAH3/8MedOYrIwYS3k4ZrUczWa\n54KPn5j40jQaDeO/JRYN2UKTZtsFBQUBmXYMOC2TtrY2vHiYe4w8lyibvPQ1SEiM5GUdM+e2e773\nYonrTSo83PXCdRfjGQrn+9TW5YBEIvKwjrnwNs+ObaWRfxRFMe4Of4g0yYLJyspCRkbGmFnjD79g\nRVJyJGMlW62D/vuORmcFCZehoVFfRkQ0983VarZAlui0TvlaxzRNo7OzEx0dHZDL5bwzITo6OlBR\nUYGpU6fimWeeYVwe/hjFNI6Z3EE9u90+ZAHHV199hby8PK/+xNEG7Ox2O/r6+tDa2gqj0QiJRAKp\nVMpY0d56KPgDMum6qakJKSkpeOlD7onV7oLcq3JaT9Gx3DcMCcd0Ci5B5iPGwNCCHBIiZlLr+Iix\n+zy79PT0Yd9brmwVEpTyllLIhdlsRl1dHUJCQiCXy/3aZc4bD79gRWSUc4fFFmTAuyhr1E5fVWTQ\nOAAAIABJREFUP5coW82Du4/3XpIPe36j0Yja2lpER0cjPz+f106Toii8/vrr2LNnD5599lncdNNN\nE1V8uRAEeShBrqmpQXp6uofPiqvCztcvDUmv6+rqcsm9tFqtjBWt1WqZ8mki0P4YR6/X69HQ0IDw\n8HDk5+cz4vDIy9yWLFuUiSAD3KKsvWxAQrLrFnysBDk2dvB94HJVsNHr9S7TvUfjCiIirdFoGH+n\nN5EmnzOp8AtUAyIAMBgM2LQ3lFOUiSADrqJMBBnwFGUiyMOJMU3TzHdboVDw9vm2tbWhoqICeXl5\n2LZt24hcOVc5k1uQHQ7HkBV1DQ0NiI+Pd/FXuVfYjSTgx7ZMs7Ozh7Qc3LuRabVa2O12JiAlk8l4\nb6OtVitT3cdVZj2cILPFGPAUZO1lVqDviiiPlbuCrxg7HA6mf25hYeGYNSl39ivWu1jSDocDVqsV\nsbGxyMnJ8Tm4O5q1tLa2oqenBwqFAo+/KYVBa4LsGteScndRZosxgYgy2zreUmFnbjzuxR8GgwE1\nNTU+BSopisJrr72Gv/zlL9i+fTu++93vBswqNpvNmD9/PtOhcdmyZaisrAzIuTkQBHkoQW5qaoJU\nKkVaWppf8om1Wi2USiWkUiny8vJGvG0l3a7cfZ3sNKiYmBjmQqEoCh0dHejs7By2EsqbKA/0cU+a\nYIsyW5ABpyiPhXU80G9C9lSnsHpzVZCgXVNTEzIzM4cctulvbDYbLl68CL1ej6ysLJdm7IBroQT7\nc/IHGo0GdXV1SE5OxpQpU5hj/+YpDQC4iDJbkLXqyxB7EU+ryYKImEFr+bWnkpnvncFgYIKmNpsN\nRqMRRUVFvK3i1tZWrF69GgqFAlu3bg1YuiGBXEvR0dGw2WyYN28edu7ciblz5wZ0HVeY3IJMUdSQ\nPY/b29tB0zQyMjJGXdjR2NgIi8UCuVw+JlsxYqGxg4YikQihoaHQ6/VITExEQUEBL0uaS5R7uwYQ\nGs69zY+OlXqIMZvIGNeg6EgE2W6nEJcgdRFjAFizxOQhaGSeXXh4OAoKCvwyLIAP7JvAlClTOCeL\nswslyOcEwOVm6kvJMYEEKvV6PRQKBaKiojwe85unNLBZXD9bs9ECLcsy5hJlq8lpHUfERHK6KwYG\nBlBTU4OIiAiEhYXBYDAwr8lbhR5FUfjrX/+K1157DX/+85+xcOHCoPuKjUYj5s2bh5deegnXXcc9\nXWeMEQTZmyCTnMnOzk5kZGRAJpP5PAmC9Mzt7e1lCjsC9aUzGo1M5VdcXByMRiMTOCQXPnlN7mty\nF+TersEiAm+iTDm4s1XMxkHrNSHFaTWNxF1hv/Icthgvyj3DZKuQkT86nQ4ajQaFhYUBreIymUzM\nUFNfbwJkhh5bpNl9IYZKkwQG+0DwCVS6i3Kfqg8Ot2uALcpEjAHgv2/OcnkcRVFobm5GX18fpk2b\n5mJoeLvxHDp0CDRN4+jRo5gzZw6effZZzptHIHE4HCgtLUVjYyNWrVqFrVu3BmspgiC7CzI7YOdw\nONDf3898qSwWi4vv1ltXNXYCPGmsHagG5iTHdWBgAAUFBR6ixO6foNVqYTKZEB4e7hI0DA8PZ0SZ\nLcYAtyDr+p1b8SiZ54XFFmQAcNgcuCbVdU1DWcf9PU6/dWyCcytLBJntN7bb7Whra0NHRwcTrCPl\nxuQfn+5qI4E9NcSfN4GhRJod3G1oaABN0ygsLOTtAvNFlL0JMnGNkDgIn++31WrFM888wzSN7+3t\nBUVR+OyzzwK2ixmKgYEBLF26FLt27cKMGTOCsYTJLcg0TcNqtbr8PlTAjt36kl3xxS74IIGzuLg4\n5OTkBKywg13d52uOKwkaksCh1WpFZGQkdvwznfPx7qJMBBnwFGUuQXZH7NbwJsKtjJeIsThEjMys\nGHS067B9lfMCZs+zk8vlzC6GXW6s0WiY7mruN57RiPTAwADq6+uRlJSEqVOnjvlN1263M6+pu7sb\nOp0OUqkUCQkJLiXUfNdx32ZnG82BngE4HA4PUbaaLIwwEzEmQVKNRoNp06bxtm6bmppQUVGBmTNn\nYsuWLczzbDZbQIufhuPxxx9HZGQk1q1bF4zTC4JMGgyNNGBHfLe9vb3o6uqC3W6HVCpFXFwcc/Hz\n7dg1Ui5fvgylUum3mwApNV691XPGGoGIMluMCUSU3cUYGLkgsx+zfVXYiObZsfsUs1MK+UxkYUP6\nXpjNZigUCt5tOf0B8Y9HRkYiPz8fAFwsaYPBwLhwyGuKiory+v2767eNzM9sUWZbxh++XQrAeQOq\nq6tDeno6srKyeH2nHQ4H9uzZg7feegs7duzA/PmezayCSW9vL0JDQxEXFweTyYSbb74Z69evx5Il\nS4KxnMktyMR6iouLY0TYV+EkE6c1Gg3jIrDb7S4Wp9FoRHh4uEfBx2gxmUxQKpVwOByQy+Vj4ov7\nxaZer/8XGh7KKciAU5RHYh0DroIcmxANvcaE2ATna9u+KowZo5WSkuKSSeAr7JRC8o/sDtgiTW5w\n7MISX/r2+gNSUUlcI0NlMZASavKa2H0u2JY0WTtblI1ap6+XupKf/+Hbpcw4JYPBgKKiIt5VpI2N\njaioqEBpaSn++Mc/BvTGxZfz58/j3nvvhcPhAEVR+NGPfoRNmzYFazmTW5Crqqrw8MMPMz0FSktL\nUV5e7jHDiwt2Kpm3iDobi8XCuDrYbgH2FppvSS47WJifnz/mQxy9ibLZ4L0yjlzYMdcMBuF8tY51\nl/WQJcoYMd5yH4WGhgZQFIXCwsIxKS8nbim2SNvtdoSFhcFkMiEqKmrMzu0NrVaLuro6XHPNNcjJ\nyRnRDYirGZFEInGxpJfdr2QeTzkc+PDtUubmR5pc8bWKX3rpJbzzzjt47rnnMG/ePJ/XO1La29tx\nzz33oLu7GyKRCL/+9a+xZs2agJ1/lExuQSbYbDZ88803OHHiBE6dOoVz585BLBZj9uzZKCkpQXl5\nOeRyOVN51dnZic7OTsZ3OJJkf3YHMlLxxa72kslkHulPpGdzc3NzQIOFXII80HulxDaSW5iIIANO\nUfbFOtZddj6XLcYPLlFBpVIxc+UCBUVRaGpqQk9PD5KTkxk/7nATWfyBw+Fw6bnh7xxdItJsS5oE\nQ6OiotDX1we73Y6ioiLeGUYNDQ148MEHMWfOHDzxxBMBvXEBzikiKpUKJSUl0Ol0KC0txYEDB1BU\nVBTQdYwQQZC5oGkaer0eZ86cYUS6oaEBERERMBgMWLBgAdauXev3YgP3XGKdTsdsNUNDQ9HT04PY\n2Fjk5+cHNCqt0Wiwdvtg8JOIMcFdlNliTLDb7Ii9xnWb7S7I7jmyWfLBoOJvb20f8c1vpJA+2amp\nqR6ZBOzyaZIF4T6RZTRFH8QyJTfeQLlGrFYr2tvb0dHRgYiICFAUxWseoN1ux4svvoh3330Xu3bt\nGtFgh7HgjjvuwOrVq7Fo0aJgL4UPgiDz5ZFHHsEXX3yBpUuXore3F6dOnUJPTw/y8/NRWlqKsrIy\nzJ49G9HR0X69eAwGA+rr62E0GiGVSmG1WsfEH82FxWJhCloKCwuxeqvRQ4wJbFF2F2S7jbsaUhLq\n6qIJZx1DGi1FYno87r7+GxQWFgbU/0hm6dlsNigUCt5WHlfurUgk8giwDSXS5Nx2ux0KhcLn3PfR\nQM7tcDigUCiY7xVXqmRYWBhCQ0NRXV2N9PR0bNu2DfPmzUNlZWVA1zwULS0tmD9/Pi5cuDDkXMJx\nhCDIfGltbUV2draL2DocDtTX1+PkyZM4efIkzp49C5vNhuLiYkaki4qKRpT1QII4ly5dQm5ursuQ\nVa40NdIi0pfeFkOdm/jH3UfPL32gwevzTFq9i6gSuAR5ODEGgF/dpkR8fLxXF46/YacO+muWHjuf\nWKPRuGRBsLNwADABw9zcXKSkpPjjJfGmu7sbTU1NvM9tsVjQ0tKCzZs34+zZswgLC0N+fj5+/OMf\n4+c///nYL3gY9Ho9FixYgI0bN+LOO+8M9nL4IgiyvzEajTh79iyqqqpQVVWFmpoaxMTEMAJdXl4+\npO/X1+ZD5DlGo9ElP5psn8n4HL5j2vv7+6FUKpGYmOjVReBNlE1XLGO2uPpqHRMxfvVxZ1UjO1tA\np9NBLBa7ZAsMldLlC3q9HnV1dYiJiUFeXt6YNKYnuGdB6PV6ZueTnZ2N+Pj4MStkccdisbi0BeXr\nCqutrUVFRQUWLFiA//u//0NERAS6urqY/ORgYrPZsGTJEtxyyy146KGHgroWHxEEeayhaRp9fX2o\nqqrCyZMnUVVVhfb2dmRnZ6O8vBylpaUoLS1FXFwczp8/D5vNBqlU6tIWcySwB5pqNBqXhvjEMmNf\n9Gazman6ksvlw27TuUTZ5OaqCI+U8raO2c3PX9/i3UIjQTVy82GXg5PXxVUO7g2Hw4Hm5mb09/dD\noVAEdGtL0zTa2tqYYKVIJPKooHTPkfaXSLNT+LzN8uPCbrdj586d+Pe//40XX3wR5eXlflmPv6Bp\nGvfeey8SEhKwY8eOYC/HVwRBDgYkck9cHV9++SU6OzsRHR2NlStX4lvf+haKi4v97hvmiqqHhYUx\n+bj5+flITU3lfTy2KLuLMQBQdmdmRah00KfoLsYiltUuS4wbUoy9wfZxajQaj4IPmUzGafmp1Wo0\nNjb6VOjgL8g8vfj4eOTk5HDuRIYrZPH2uoaDPU7Jl97QNTU1qKiowHe+8x1s2rQpIE32feWzzz7D\njTfeiGuvvZbZET755JNYvHhxkFfGC0GQg01vby8WLVqEhx56CAqFAqdOncLJkyfx9ddfIywsDLNn\nz0ZZWRnKysqQn5/vVx9qb28vlEol0xdBp9N5+KOH6+F764pqzr8TMXZHLHE9VkT0YDHLgd2FI3gV\nntA07ZL3zS74kMlkkEqlUKlUEIlEKCwsDGgQipQeDwwM+DxPz9dCFq7nd3Z2or29HXK5nHezfJvN\nhh07duA///kPXnzxRZSVlfFesz9YuXIlPvjgAyQnJ+PChQsBPXeAEQR5PGC1Wj0sHZqmodVqGYGu\nqqrCxYsXkZaWxvijy8rKXAJufDEYDGhoaEBoaCgKCgpcLB1v/uihBrS6i3IwxdgbpO9tS0sL1Go1\nwsLCmMGa7KDhWKbVkTQ6f1rk7EIW9gAD9hzA2NhY2Gw21NbWMiXXfH3kFy5cwIMPPoibb74ZGzdu\nDIpV/MknnyA6Ohr33HOPIMgQBHncQNM0Ojo6cOLECSZo2N/fD7lczgj0rFmzvPbOYE/PkMvlvJuI\nE38014BWEjSMiIjAbXefdT6eQ5C9ifFYCzGBuAjYkyzcc4l1Oh1EIhETDOWTpsYHm82GhoYGWK1W\nn9LoRgp7gIFGo4FarYbVakV8fDwSExN5FbLYbDb86U9/wuHDh/HSSy+hpKRkTNc8HC0tLViyZIkg\nyBAEeVxjt9tRW1vLFLCcPXsWNE1j5syZjEgXFBTgvffeQ1ZWFrKysvxSaMD2R5NuasS/+cCj/S6P\ndRdjADj8VmAucNKOlJTHD+ci8Jamxvbb8s2AYDesz8nJQUpKSkD91AaDAbW1tZDJZJg6dSrMZrPL\nzQeAyw4hKioKISEh+Prrr/Hggw/itttuw6OPPjouWmMKgsx6kCDIVw/EOjpz5gyqqqrw0Ucf4fTp\n08jLy8O8efNQXl6O8vJyXhOXfT0vCUKRi95qtTJd9HJycpCWlhbQSjvSuN3XdqTueAuGsvuQuPuh\nyZTp0NBQyOXygLaYZDciUigUXucIuheyrF+/Hm1tbdDpdHjggQdw5513YsaMGQHr5T0UgiCzHiQI\n8tVJc3MzfvGLX2D79u3IzMxksjpOnToFlUqFnJwcpqHS7NmzERsb6ze/Zk9PDy5evIjk5GRIpVLG\nKhvOH+0PzGazS4/ksfB7ut98LBYLpFIpYmNjYbVaGbdQIKdMA8586traWiQkJPjUiOirr77CmjVr\ncMstt+C73/0uzp07h+rqarz66qtjmpPNF0GQWQ8SBPnqhTTbd4eiKCiVSsYfXV1dDbPZjBkzZjAi\nPX36dJ+3q8PNsyNWmbs/mlib3sZK8YGiKLS3t0OlUvHukewvSL55fX09JBIJxGIxHA6HR3BtrHYI\nFEUxAUv3cUpDYbFYsG3bNhw9ehS7d+9GcXHxmKxvtAiCzHqQIMiTA4vFgnPnzjH+6AsXLiAyMhIl\nJSWMP9rbZAzSElStVkMul/s0yoi4BIhIs/3RRKiHuzFoNBrU19czlmEgXSPs2XLs4hLiPmL7bdkV\nlCMdaOoOac+ZlJTkU3/oc+fOYc2aNfjBD36ARx55ZFxN7mDzk5/8BMeOHYNarUZKSgoqKytx3333\nBXtZY4EgyFw89thjOHjwIMRiMZKTk7F3716kp3OPM5rI0DSNy5cv49SpU4xIt7S0IDMzkxHo0tJS\nHDlyBDExMSgqKkJWVtaoBcY9j1ij0bikcpF+HSEhIUzzdDJtOdBj5MkYp9TUVF6vnauCkl0OLpPJ\neE+YYec0T5s2jfdrt1gs2Lp1Kz799FO8/PLLuPbaa3k9z18cPnwYa9asgcPhwC9/+Uts2LAhoOcf\nxwiCzIVWq2WsnOeeew41NTV4+eWXg7yq8QEZnXTy5El89NFHOHjwIFJSUlxcHcXFxX5P7XK3NrVa\nLWw2G2w2G5KTk5Gdne33TntDYbPZ0NjYCJPJhGnTpo3q9bInzJAxTKGhoR5BQ/ZrI+OU0tLSPJpe\nDUV1dTXWrl2Lu+66C+vWrQu4VUym23z00UfIzMxEeXk53n777aulX/FYw+tDDL5HP8Cw+xkYDIaA\npiqNd8RiMXJycpCdnY2//e1v2LdvH2688UZcuHABJ06cwBtvvIHz588jJCTEpcF/QUHBqNwIJD84\nOjoaCQkJqKurQ1RUFFJTU2E0GtHS0gKDwTCqvhZ8IQHLqVOnQqFQjPr4EokECQkJSEhIYP5GysE1\nGg26urqYsumYmBjo9XqmqyDftqRmsxlPPfUUvvzyS7z++uuYPn36qNY8UqqqqpCfn4/c3FwAwI9/\n/GMcPHhQEGQfmHQWMgBs3LgRb7zxBmQyGY4ePRrQKRVXOzRNQ6fTuTT4VyqVSEpKcul652teLrsl\nqVwudxEwAtsfze5rwQ4ajtQqJNkbvnZG8wdkWoxSqURUVBQoioLdbvcom+bKiDh9+jR+97vfYfny\n5XjooYeCmjWxf/9+HD58GH/5y18AAH/7299w8uRJPP/880Fb0zhi8rosbrrpJly6dMnj71u2bMEd\nd9zB/P7UU0/BbDajsrIykMubcJBew1VVVYxI9/b2oqCggOl4V1JS4rWdJvHVkrFZfP3U7P4P7qXF\nRKSHq1ojPSA6OjoCMsPQHbvdDqVS6eEecS9zZ4+WOn/+PBITE3Hs2DGcOXMGe/bsCXpbTEAQ5GGY\nvILMl7a2NixevNhv6Ta///3v8f777yMsLAx5eXl47bXXeJcwTzQcDgfq6uqYXh3V1dVwOBwuDf6T\nkpJw4MABXHfddVAoFH6ZHML2R5N5hgBcAmvkxkCq3QLRJ5kLtVoNpVLJa5AuMDgG7LnnnsOhQ4fQ\n19eH9PR0lJSU4Omnn/ZaJBIovvzyS2zevBkffvghAKfBAwB/+MMfgrms8YIgyFwolUoUFBQAAHbt\n2oXjx49j//79fjn2//73P3znO9+BRCLB+vXrAQBbt271y7EnAkajEdXV1Th58iT279+Puro6zJ49\nG8XFxYyrIyMjw+/FJFwl0zabDRRFITs7G6mpqWPij/YG6X9hs9kwbdo03sUtJpMJf/zjH1FdXY3d\nu3dDoVAwQxOuu+66oBd52O12yOVyHDlyBBkZGSgvL8ff//73oPm0xxlCUI+LDRs2MJVeU6ZM8WuG\nxc0338z8PHfuXL8J/UQhMjIS8+bNQ3d3N2bOnIn//Oc/cDgcTIP/N998Ex0dHZgyZYpL6p1MJhuV\nWIaEhCAuLg5xcXHQaDRMBoNMJmMaE7H90cTdMRZZCiRo6Gv/ixMnTmDdunW4++678eyzzzJumMjI\nSNxwww1+X+dIkEgkeP7553HLLbfA4XBg5cqVghj7yKSzkAPF9773PSxfvhx33313sJdyVUFRFC5e\nvMi4Ok6fPg2j0YiioiJGpK+99lqfS6ZJTrPBYMC0adM83CP+8EcPhdVqRV1dHdOnmW/Q0Gg04okn\nnsC5c+fwyiuvQC6Xj+j8VwPnzp3DAw88AK1Wi5CQEGzcuBHLly8P9rL8heCyGAv4BAy3bNmC06dP\n41//+peQVucHrFYrvvrqK6Zfx4ULFxAeHu7S4D8vL8+rq4M0IsrOzvap8RJp4UlEmrTwZA8xHW7u\nH8mgaG5uRl5eHpKTk3m/7i+++AK///3vce+996KioiKgFYruvPvuu9i8eTNqa2tRVVU1Jo3sGxoa\nIBKJUFBQgK6uLpSWlqK2tnaixGEEQQ4Ge/fuxe7du3HkyBG/jrcPxAVxtUDTNDQajUuD/6amJibA\nVV5ejrKyMphMJnz++eeYPn06CgsL/dKIiPijSdCQzP1jp96R+Xgj7QpnMBjw+OOP48KFC9izZw8T\n8wgmtbW1EIvFuP/++/Hss8+O+vu3YcMGZGVlYdWqVQCAzZs3Izo6GuvWrWMeM3PmTOzfv39cvH4/\nIPiQA83hw4fxzDPP4Pjx434VYwCYMWMG/vWvf+H+++/363GvRkQiEeLi4rBo0SIsWrQIwOBQ0ZMn\nT+KLL77Ao48+iv7+ftxwww3o7e2FXq/HrFmzRj3xme2PJnAVeohEIlgsFmRnZyMzM5OXGNM0jc8/\n/xzr16/HypUrsWPHjqBaxWz8nVa3fPlyrF27lhHkffv2MdkZgLPIxGq1Ii8vz6/nHe8IguxHVq9e\nDYvFwojE3Llz/RY0HA95puMZkUiEKVOmYMqUKWhtbcUtt9yCyspKRqT/8Y9/YMOGDRCJRC4N/gsL\nC0ctemFhYUhMTERiYiJMJhNqamoQFhaG7Oxs6PV6nDt3jskh9jZSymAwYPPmzairq8P+/fsnvBDN\nnj0bPT096OrqQm9vL+Lj45GVlQUAUKlU+NnPfobXX399XPRrDiSCIPuRxsbGYC9BAMDDDz/MXMjx\n8fGYOXMmfv3rXzM5yqdPn0ZVVRW2bt3KdJFjVxnyyQl2h4zg6uzs5Kw0ZI+U6uzshE6nA0VReOWV\nV5Ceno5Dhw5h1apV2LVrV9BEiG9Blb/44Q9/iP379+PSpUtM8E6r1eL222/Hli1bMHfuXL+fc7wj\nCPI4ItAXxETFm6CRnhkLFy7EwoULAQwG3UjA8NVXX8WlS5eQm5vr0uA/JibGq0gbjUamwKS8vJzT\n4haLxYiJiXHpZdzf3w+JRILPP/8c+fn5+Otf/4rPP/8c77zzzujfhBHw8ccfB/R8y5cvx69+9Suo\n1WocP34cVqsVS5cuxT333INly5YFdC3jBUGQxxGBviCEVolOkU5NTcUdd9zB3PQoikJDQwNOnDiB\n999/H5WVlbBarR4N/kUiEY4fP47o6GgUFhbyzgagaRqffPIJNmzYgAceeABvvPEGcxMhlYWTgenT\np0On0yEjIwNpaWl488038cknn6Cvrw979+4F4AySz5o1K7gLDSBClsVVxsKFC/0S5RZaJfqG2Wx2\nafB/5swZaLValJaWYtmyZSgrK+PVQF6n0+Gxxx5DS0sL9uzZg6lTpwbmBYyS9957DxUVFejt7UVc\nXBxmzZrlEoQTGBYh7W0i4e8LQug7MHI++ugjbNq0CU8++SQsFgsj0q2trcjKynKpMoyPj4dIJAJN\n0zh27BgeffRRrFq1Cr/85S+D5isWeq4EBUGQBbwjdOYaOSaTCRKJxCOVjcy+I7MMT58+DZ1OB7lc\njp6eHkilUuzZswfZ2dlBWrkToedKUBDykAUExgJvE0TEYjFyc3ORm5uLn/70pwCcjYTOnz+P999/\nH5s2bRoXaVxCz5XxS/C/HQJBISMjA+3t7czvHR0dyMjI8NvxV65cieTkZMyYMcNvx7waCQ0NRWlp\nKTZv3jwuxNidV199FbfddluwlyFwhfH3DREICOXl5VAqlWhubobVasU777yD73//+347/s9//nMc\nPnzYb8cT8I2bbroJM2bM8Ph38OBB5jFbtmyBRCLBihUrgrhSATaCy2KSMtatEufPn4+Wlha/HU/A\nN4ZLody7dy8++OADHDlyRGiANY4QBHkSs3jxYixevDjYyxAIMGPZc0VgdAguCwGBScbq1auh0+mw\naNEizJo1C7/5zW+CvSSBKwgWsoDAJEPouTJ+ESzkCcqtt96KuLg4LFmyJNhL8Tvt7e349re/jaKi\nIkyfPh07d+4M9pKCxmOPPYbi4mLMmjULN998M7q6uoK9JIFRIBSGTFCOHDkCo9GI3bt344MPPgj4\n+X/yk5/g2LFjUKvVSElJQWVlJe677z6/HFulUkGlUqGkpAQ6nQ6lpaU4cODApCz71mq1iI2NBQA8\n99xzqKmp8eucSAG/IRSGTAaGmrxw7NixoK3r7bffHrNjp6WlIS0tDQAQExODadOmobOzc1IKMhFj\nwNlTWciYuLoRXBZXOcuXL8e+ffuY3/ft2zeRBkMOS0tLC86ePYvrrrsu2EsJGhs3bkRWVhbeeust\nPP7448FejsAoEAT5Koc9eeGrr75ymbww0dHr9bjrrruwY8cOF0txojFckceWLVvQ3t6OFStWCL1I\nrnIEl8UEgGvywkTHZrPhrrvuwooVK3DnnXf69dhmsxnz58+HxWKB3W7HsmXLUFlZ6ddz+ALfPtkr\nVqzA4sWLg7pWgdHha1BPYBwiEommA3gFQCKABTRNq678fSGAdTRNT6hUC5HTUfo6gH6apteO0fGj\naJrWi0SiUACfAVhD0/QJf59rtIhEogKappVXfq6A8/OfnOM2JgCChTwBoGn6G5FIFAOgkyXGnwJQ\nAIgWiUQdAO6jaXqidBS/AcDPAHwtEonOXfnbozRNH/LHwWmnlaK/8mvolX/j1XJ5WiSS3mlpAAAA\nq0lEQVQSFQKgALQCEKo8rmIEC1lAgAORSBQC4AyAfAAv0DS9PshLEpgECEE9AQEOaJp20DQ9C0Am\ngDkikWhy9xEVCAiCIAsIDAFN0wMAjgK4NdhrEZj4CIIsIOCGSCRKEolEcVd+lgJYBKAuuKsSmAwI\nQT0BAU/SALx+xY8sBrCPpunA158LTDqEoJ6AgIDAOEFwWQgICAiMEwRBFhAQEBgnCIIsICAgME74\nf0eLZ0gKjzcOAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fa0b8b59470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "from matplotlib import cm\n",
    "from matplotlib.ticker import MaxNLocator\n",
    "%matplotlib inline\n",
    "\n",
    "fig = plt.figure(figsize = (6, 4))\n",
    "ax = fig.gca(projection='3d')\n",
    "\n",
    "X = np.arange(-3.1, 3.1, 0.1)\n",
    "Y = np.arange(-3.1, 3.1, 0.1)\n",
    "length = len(X)\n",
    "xx, yy = np.meshgrid(X, Y)\n",
    "Z = np.array([[objective([x, y]) for x in X] for y in Y]).reshape(length, length)\n",
    "surf = ax.plot_surface(xx, yy, Z, cmap=cm.coolwarm, antialiased=False)\n",
    "\n",
    "ax.set_xlabel(\"v1\")\n",
    "ax.set_ylabel(\"v2\")\n",
    "ax.zaxis.set_major_locator(MaxNLocator(nbins = 5, prune = 'lower'))\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Optimization"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The initial values of the x- and y-rotation parameters $v_1, v_2$ are set to near-zero. This corresponds approximately to identity gates; in other words, the circuit leaves the qubit near the ground state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "var_init = np.array([-0.011, -0.012])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The value of the objective at the initial point is close to $1$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9998675058299387"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "objective(var_init)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We choose a simple GradientDescentOptimizer and update the weights for 10 steps. The final parameters correspond to a $Z$ expectation of nearly $-1$, which means that the qubit is flipped."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Objective after step     5:  0.9961778 | Angles: [-0.05911537 -0.0644936 ]\n",
      "Objective after step    10:  0.8974944 | Angles: [-0.31109663 -0.34002089]\n",
      "Objective after step    15:  0.1440490 | Angles: [-1.09530423 -1.25068588]\n",
      "Objective after step    20: -0.1536720 | Angles: [-1.1317852 -1.9407188]\n",
      "Objective after step    25: -0.9152496 | Angles: [-0.29269523 -2.84352066]\n",
      "Objective after step    30: -0.9994046 | Angles: [-0.02419352 -3.11698103]\n",
      "Objective after step    35: -0.9999964 | Angles: [-1.88206857e-03 -3.13967807e+00]\n",
      "Objective after step    40: -1.0000000 | Angles: [-1.46350019e-04 -3.14144378e+00]\n",
      "Objective after step    45: -1.0000000 | Angles: [-1.13801776e-05 -3.14158108e+00]\n",
      "Objective after step    50: -1.0000000 | Angles: [-8.84922614e-07 -3.14159175e+00]\n",
      "Objective after step    55: -1.0000000 | Angles: [-6.88115824e-08 -3.14159258e+00]\n",
      "Objective after step    60: -1.0000000 | Angles: [-5.35078863e-09 -3.14159265e+00]\n",
      "Objective after step    65: -1.0000000 | Angles: [-4.16077330e-10 -3.14159265e+00]\n",
      "Objective after step    70: -1.0000000 | Angles: [-3.23541437e-11 -3.14159265e+00]\n",
      "Objective after step    75: -1.0000000 | Angles: [-2.51586743e-12 -3.14159265e+00]\n",
      "Objective after step    80: -1.0000000 | Angles: [-1.95634540e-13 -3.14159265e+00]\n",
      "Objective after step    85: -1.0000000 | Angles: [-1.52121959e-14 -3.14159265e+00]\n",
      "Objective after step    90: -1.0000000 | Angles: [-1.17897687e-15 -3.14159265e+00]\n",
      "Objective after step    95: -1.0000000 | Angles: [-5.76516144e-17 -3.14159265e+00]\n",
      "Objective after step   100: -1.0000000 | Angles: [-5.76516144e-17 -3.14159265e+00]\n"
     ]
    }
   ],
   "source": [
    "gd = GradientDescentOptimizer(0.4)\n",
    "\n",
    "\n",
    "var = var_init\n",
    "var_gd = [var]\n",
    "\n",
    "for it in range(100):\n",
    "    var = gd.step(objective, var)\n",
    "\n",
    "    if (it + 1) % 5 == 0:\n",
    "        var_gd.append(var)\n",
    "        print('Objective after step {:5d}: {: .7f} | Angles: {}'.format(it + 1, objective(var), var) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Starting at a different offset, we train another optimizer called Adagrad, which improves on gradient descent.\n",
    "\n",
    "*Note: Adagrad, as many other optimizers, has internal hyperparameters that are stored in the optimizer instance (here: `ada`). To reset these hyperparameters, use `ada.reset()`.*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Objective after step     5:  0.0123798 | Angles: [-1.45877111 -1.45982822]\n",
      "Objective after step    10: -0.0000052 | Angles: [-1.56419732 -1.57158437]\n",
      "Objective after step    15: -0.0008878 | Angles: [-1.54089864 -1.6004995 ]\n",
      "Objective after step    20: -0.0535320 | Angles: [-1.33713923 -1.80411042]\n",
      "Objective after step    25: -0.7042678 | Angles: [-0.57448842 -2.56613427]\n",
      "Objective after step    30: -0.9855194 | Angles: [-0.12029953 -3.02063734]\n",
      "Objective after step    35: -0.9994782 | Angles: [-0.02272916 -3.11863269]\n",
      "Objective after step    40: -0.9999814 | Angles: [-0.00427525 -3.13725339]\n",
      "Objective after step    45: -0.9999993 | Angles: [-8.04023945e-04 -3.14077269e+00]\n",
      "Objective after step    50: -1.0000000 | Angles: [-1.51207827e-04 -3.14143771e+00]\n",
      "Objective after step    55: -1.0000000 | Angles: [-2.84367179e-05 -3.14156338e+00]\n",
      "Objective after step    60: -1.0000000 | Angles: [-5.34791708e-06 -3.14158712e+00]\n",
      "Objective after step    65: -1.0000000 | Angles: [-1.00574958e-06 -3.14159161e+00]\n",
      "Objective after step    70: -1.0000000 | Angles: [-1.89145083e-07 -3.14159246e+00]\n",
      "Objective after step    75: -1.0000000 | Angles: [-3.55713420e-08 -3.14159262e+00]\n",
      "Objective after step    80: -1.0000000 | Angles: [-6.68968152e-09 -3.14159265e+00]\n",
      "Objective after step    85: -1.0000000 | Angles: [-1.25808692e-09 -3.14159265e+00]\n",
      "Objective after step    90: -1.0000000 | Angles: [-2.36600598e-10 -3.14159265e+00]\n",
      "Objective after step    95: -1.0000000 | Angles: [-4.44960588e-11 -3.14159265e+00]\n",
      "Objective after step   100: -1.0000000 | Angles: [-8.36813259e-12 -3.14159265e+00]\n"
     ]
    }
   ],
   "source": [
    "ada = AdagradOptimizer(0.4)\n",
    "\n",
    "var = var_init\n",
    "var_ada = [var]\n",
    "\n",
    "for it in range(100):\n",
    "    var = ada.step(objective, var)\n",
    "    \n",
    "    if (it + 1) % 5 == 0:\n",
    "        var_ada.append(var)\n",
    "        print('Objective after step {:5d}: {: .7f} | Angles: {}'.format(it + 1, objective(var), var) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adagrad and gradient descent find the same minimum, and, since neither has information on second order derivatives, both take a detour through a saddle point. However, while Adagrad reaches the saddle point very quickly and then spends considerable time there, gradient descent bypasses it and reaches the minimum quicker. This behaviour is of course strongly dependent on the learning rate. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fa0b3a02320>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize = (6, 4))\n",
    "ax = fig.gca(projection='3d')\n",
    "\n",
    "X = np.linspace(-3, 3, 30)\n",
    "Y = np.linspace(-3, 3, 30)\n",
    "xx, yy = np.meshgrid(X, Y)\n",
    "Z = np.array([[objective([x, y]) for x in X] for y in Y]).reshape(len(Y), len(X))\n",
    "surf = ax.plot_surface(xx, yy, Z, cmap=cm.coolwarm, antialiased=False)\n",
    "\n",
    "path_z = [objective(var)+1e-8 for var in var_gd]\n",
    "path_x = [v[0] for v in var_gd]\n",
    "path_y = [v[1] for v in var_gd]\n",
    "ax.plot(path_x, path_y, path_z, c='green', marker='.', label=\"graddesc\")\n",
    "\n",
    "path_z = [objective(var)+1e-8 for var in var_ada]\n",
    "path_x = [v[0] for v in var_ada]\n",
    "path_y = [v[1] for v in var_ada]\n",
    "ax.plot(path_x, path_y, path_z, c='purple', marker='.', label=\"adagrad\")\n",
    "\n",
    "ax.set_xlabel(\"v1\")\n",
    "ax.set_ylabel(\"v2\")\n",
    "ax.zaxis.set_major_locator(MaxNLocator(nbins = 5, prune = 'lower'))\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Choosing initial variables"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The variables are best randomly initialized with near-zero values. To show why constant initializations can go wrong, consider starting at exactly zero. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Objective after step     1:  1.0000000\n",
      "Objective after step     2:  1.0000000\n",
      "Objective after step     3:  1.0000000\n",
      "Objective after step     4:  1.0000000\n",
      "Objective after step     5:  1.0000000\n",
      "Objective after step     6:  1.0000000\n",
      "Objective after step     7:  1.0000000\n",
      "Objective after step     8:  1.0000000\n",
      "Objective after step     9:  1.0000000\n",
      "Objective after step    10:  1.0000000\n"
     ]
    }
   ],
   "source": [
    "var = np.array([0., 0.])\n",
    "\n",
    "for it in range(10):\n",
    "    var = gd.step(objective, var)\n",
    "    print('Objective after step {:5d}: {: .7f}'.format(it + 1, objective(var)) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this case, the model is \"stuck\" in the maximum of the cost function, where the gradient vanishes."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
